VC里使用DOM的,对查找的结果集按照字符串比较大小的要求排序的XPATH如何写.

解决方案 »

  1.   

    例如XML片段如下:  <DeptItem   Id="117"   Name="****"   LeadDid="114"   LeadCid="203"   Order="1"   Memo=""   />   
      <DeptItem   Id="118"   Name="****"   LeadDid="114"   LeadCid="203"   Order="2"   Memo=""   />   
      <DeptItem   Id="114"   Name="****"   LeadDid="0"   LeadCid="0"   Order="6"   Memo=""   />   
      <DeptItem   Id="119"   Name="****"   LeadDid="0"   LeadCid="0"   Order="4"   Memo=""   />   
      <DeptItem   Id="116"   Name="****"   LeadDid="0"   LeadCid="0"   Order="3"   Memo=""   />       
      Order是排序关键字. 要求selectNodes出来的DeptItem结果集是排好序的.
    请问XPATH如何写?
      

  2.   

    XPATH没有排序功能,如果要排序,必须首先操作DOM,让DOM节点先排好序。
      

  3.   

    dom+xslt
    用<xsl:sort/>排序
      

  4.   

    在VC里如何使用xslt?
    请楼上的给我指点些代码
      

  5.   

    XSLT就是把一个XML变成另一个XML,相当于拿它作为一个排序工具(当然它的功能远不止排序)生成另一个已排好序的文件。
      

  6.   


    dom的docment里面有一个transformNodeToObject函数。
    你得看MSXML的SDK文档。建议你直接操作DOM吧。xslt本身是另外一种语言,还是有一点麻烦的。
      

  7.   

    我基本上明白两位的意思了,在DOM的transformNodeToObject方法里用xslt把原来的XML重新排个序,在生成另一个DOM.我还问一下概念:xslt就是xsl语言吧?
      

  8.   

    我还想问一下以上两位:xsl是XML的样式语言.
    XML+XSL=HTML
    我有点不明白的是:如何XML+XSL=XML了?????????
      

  9.   

    xsl标准分为两个语言,
    一种是xslt,这是一种转换语言,用于将xml转换成另外一种格式,比如xml,html,fo,rtf等。
    另一种是xslfo,格式化对象语言,用于排版。
      

  10.   

    看来我对XML,XSL这块了解的太少了啊!
    多谢指点.
    不知道楼上的有没有关于这块的书籍介绍一下,我想找几本电子书看一下,好好补充一下
      

  11.   

    我搞定了,实现了排序的效果,刚学会写XSL,写的不好,请高手指点一下.<?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <xsl:copy >
    <xsl:apply-templates select="*"/>
    </xsl:copy>
    </xsl:template>

    <xsl:template match="*">
    <xsl:copy>
    <xsl:apply-templates/>
    </xsl:copy>
    </xsl:template>

    <xsl:template match="moduleList">
    <xsl:copy>
    <xsl:for-each select="module">
    <xsl:sort select="revision/structureNo" data-type="text"/>
    <xsl:copy>
    <xsl:apply-templates select="*"/>
    </xsl:copy>
    </xsl:for-each>
    </xsl:copy>
    </xsl:template>
    </xsl:stylesheet>