VC里使用DOM的selectNodes方法,如果使用XPATH对查找的结果集按照要求排序?

sunmz_wjxy 2009-04-21 09:24:10
VC里使用DOM的,对查找的结果集按照字符串比较大小的要求排序的XPATH如何写.
...全文
201 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunmz_wjxy 2009-04-24
  • 打赏
  • 举报
回复
看来我对XML,XSL这块了解的太少了啊!
多谢指点.
不知道楼上的有没有关于这块的书籍介绍一下,我想找几本电子书看一下,好好补充一下
ToperRay 2009-04-24
  • 打赏
  • 举报
回复
xsl标准分为两个语言,
一种是xslt,这是一种转换语言,用于将xml转换成另外一种格式,比如xml,html,fo,rtf等。
另一种是xslfo,格式化对象语言,用于排版。



sunmz_wjxy 2009-04-24
  • 打赏
  • 举报
回复
我还想问一下以上两位:xsl是XML的样式语言.
XML+XSL=HTML
我有点不明白的是:如何XML+XSL=XML了?????????
sunmz_wjxy 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ToperRay 的回复:]
引用 4 楼 sunmz_wjxy 的回复:
在VC里如何使用xslt?
请楼上的给我指点些代码


dom的docment里面有一个transformNodeToObject函数。
你得看MSXML的SDK文档。

建议你直接操作DOM吧。xslt本身是另外一种语言,还是有一点麻烦的。
[/Quote]

[Quote=引用 5 楼 jameshooo 的回复:]
XSLT就是把一个XML变成另一个XML,相当于拿它作为一个排序工具(当然它的功能远不止排序)生成另一个已排好序的文件。
[/Quote]

我基本上明白两位的意思了,在DOM的transformNodeToObject方法里用xslt把原来的XML重新排个序,在生成另一个DOM.

我还问一下概念:xslt就是xsl语言吧?
sunmz_wjxy 2009-04-24
  • 打赏
  • 举报
回复
我搞定了,实现了排序的效果,刚学会写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>
ToperRay 2009-04-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sunmz_wjxy 的回复:]
在VC里如何使用xslt?
请楼上的给我指点些代码
[/Quote]

dom的docment里面有一个transformNodeToObject函数。
你得看MSXML的SDK文档。

建议你直接操作DOM吧。xslt本身是另外一种语言,还是有一点麻烦的。




ToperRay 2009-04-22
  • 打赏
  • 举报
回复
dom+xslt
用<xsl:sort/>排序

jameshooo 2009-04-22
  • 打赏
  • 举报
回复
XSLT就是把一个XML变成另一个XML,相当于拿它作为一个排序工具(当然它的功能远不止排序)生成另一个已排好序的文件。
sunmz_wjxy 2009-04-22
  • 打赏
  • 举报
回复
在VC里如何使用xslt?
请楼上的给我指点些代码
jameshooo 2009-04-21
  • 打赏
  • 举报
回复
XPATH没有排序功能,如果要排序,必须首先操作DOM,让DOM节点先排好序。
sunmz_wjxy 2009-04-21
  • 打赏
  • 举报
回复
例如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如何写?

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧