请教:如何在VC++6.0中对XML进行排序? 可以在XML排序和搜索中实现类似于SQL中的select ... order by ...的功能,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只能自己写 SQL 语法解析器了。 这个事情和VC有什么关系。对于XML的操作,你应该去看xpath和xquery。 你可以用xslt,xsl:sort元素是用来排序的。 <?xml version="1.0" encoding="utf-8"?><xxmx> <options id="2"> <option lable="请选择" value=""/> <option lable="或有负债" value="8"/> <option lable="长期负债" value="7"/> <option lable="流动负债" value="6"/> <option lable="无形动产" value="5"/> <option lable="无形不动产" value="4"/> <option lable="不动产" value="3"/> <option lable="有形动产" value="2"/> <option lable="财务资产" value="1"/> </options> <options id="10"> <option lable="请选择" value=""/> <option lable="文件" value="9"/> <option lable="自定义选择" value="8"/> <option lable="从库中选择" value="7"/> <option lable="密码域" value="6"/> <option lable="文本区域" value="5"/> <option lable="单选域" value="4"/> <option lable="单选域(手工)" value="41"/> <option lable="复选域" value="3"/> <option lable="选择域" value="2"/> <option lable="文本字段" value="1"/> <option lable="隐藏域" value="99"/> <option lable="从库中复选域" value="32"/> <option lable="自定复选域" value="31"/> <option lable="选择域(可选)" value="21"/> <option lable="选择域(手工)" value="22"/> </options></xxmx><?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template match="/"> <html> <title> 排序后文件 </title> <body> <![CDATA[<?xml version="1.0" encoding="utf-8"?>]]> <br/> <![CDATA[<xxmx>]]> <br/> <xsl:for-each select="/xxmx/options"> <![CDATA[<options id="]]><xsl:value-of select="@id"/><![CDATA[">]]><br/> <xsl:for-each select="option"> <xsl:sort data-type="number" order="ascending" select="@value"/> <![CDATA[<option lable ="]]><xsl:value-of select="@lable"/><![CDATA[" value ="]]><xsl:value-of select="@value" /><![CDATA["/>]]> <br/> </xsl:for-each> <![CDATA[</options>]]> <br/> </xsl:for-each> <![CDATA[</xxmx>]]> </body> </html></xsl:template></xsl:stylesheet>排序后:<?xml version="1.0" encoding="utf-8"?><xxmx><options id="2"><option lable ="请选择" value =""/><option lable ="财务资产" value ="1"/><option lable ="有形动产" value ="2"/><option lable ="不动产" value ="3"/><option lable ="无形不动产" value ="4"/><option lable ="无形动产" value ="5"/><option lable ="流动负债" value ="6"/><option lable ="长期负债" value ="7"/><option lable ="或有负债" value ="8"/></options><options id="10"><option lable ="请选择" value =""/><option lable ="文本字段" value ="1"/><option lable ="选择域" value ="2"/><option lable ="复选域" value ="3"/><option lable ="单选域" value ="4"/><option lable ="文本区域" value ="5"/><option lable ="密码域" value ="6"/><option lable ="从库中选择" value ="7"/><option lable ="自定义选择" value ="8"/><option lable ="文件" value ="9"/><option lable ="选择域(可选)" value ="21"/><option lable ="选择域(手工)" value ="22"/><option lable ="自定复选域" value ="31"/><option lable ="从库中复选域" value ="32"/><option lable ="单选域(手工)" value ="41"/><option lable ="隐藏域" value ="99"/></options></xxmx> RichEdit读取文本文档占据内存为什么这么大而且读取文本后不释放内存? 如何从字符串中提取数字啊 如何使组件保持数据? 请教一个WinThread的问题 点阵字库的生成 如何实现类似ACDSEE那样的图像缩放 我记得有一个查看其他应用程序资源的工具? 高手请看:如何得到用ShellExecuteEx()运行的程序的窗口句柄? MFC 里面的CSocket.Receive返回值为-1怎么回事? 如何实现对CListCtrl的Vertical ScrollBar绘图,最好推荐例子,来者有分 vista如何实现指纹登录? 如何在MFC中使用.net编写的控件
<?xml version="1.0" encoding="utf-8"?>
<xxmx>
<options id="2">
<option lable="请选择" value=""/>
<option lable="或有负债" value="8"/>
<option lable="长期负债" value="7"/>
<option lable="流动负债" value="6"/>
<option lable="无形动产" value="5"/>
<option lable="无形不动产" value="4"/>
<option lable="不动产" value="3"/>
<option lable="有形动产" value="2"/>
<option lable="财务资产" value="1"/>
</options>
<options id="10">
<option lable="请选择" value=""/>
<option lable="文件" value="9"/>
<option lable="自定义选择" value="8"/>
<option lable="从库中选择" value="7"/>
<option lable="密码域" value="6"/>
<option lable="文本区域" value="5"/>
<option lable="单选域" value="4"/>
<option lable="单选域(手工)" value="41"/>
<option lable="复选域" value="3"/>
<option lable="选择域" value="2"/>
<option lable="文本字段" value="1"/>
<option lable="隐藏域" value="99"/>
<option lable="从库中复选域" value="32"/>
<option lable="自定复选域" value="31"/>
<option lable="选择域(可选)" value="21"/>
<option lable="选择域(手工)" value="22"/>
</options>
</xxmx>
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<title>
排序后文件
</title>
<body>
<![CDATA[<?xml version="1.0" encoding="utf-8"?>]]>
<br/>
<![CDATA[<xxmx>]]>
<br/>
<xsl:for-each select="/xxmx/options">
<![CDATA[<options id="]]><xsl:value-of select="@id"/><![CDATA[">]]><br/>
<xsl:for-each select="option">
<xsl:sort data-type="number" order="ascending" select="@value"/>
<![CDATA[<option lable ="]]><xsl:value-of select="@lable"/><![CDATA[" value ="]]><xsl:value-of select="@value" /><![CDATA["/>]]>
<br/>
</xsl:for-each>
<![CDATA[</options>]]>
<br/>
</xsl:for-each>
<![CDATA[</xxmx>]]>
</body>
</html>
</xsl:template>
</xsl:stylesheet>排序后:<?xml version="1.0" encoding="utf-8"?>
<xxmx>
<options id="2">
<option lable ="请选择" value =""/>
<option lable ="财务资产" value ="1"/>
<option lable ="有形动产" value ="2"/>
<option lable ="不动产" value ="3"/>
<option lable ="无形不动产" value ="4"/>
<option lable ="无形动产" value ="5"/>
<option lable ="流动负债" value ="6"/>
<option lable ="长期负债" value ="7"/>
<option lable ="或有负债" value ="8"/>
</options>
<options id="10">
<option lable ="请选择" value =""/>
<option lable ="文本字段" value ="1"/>
<option lable ="选择域" value ="2"/>
<option lable ="复选域" value ="3"/>
<option lable ="单选域" value ="4"/>
<option lable ="文本区域" value ="5"/>
<option lable ="密码域" value ="6"/>
<option lable ="从库中选择" value ="7"/>
<option lable ="自定义选择" value ="8"/>
<option lable ="文件" value ="9"/>
<option lable ="选择域(可选)" value ="21"/>
<option lable ="选择域(手工)" value ="22"/>
<option lable ="自定复选域" value ="31"/>
<option lable ="从库中复选域" value ="32"/>
<option lable ="单选域(手工)" value ="41"/>
<option lable ="隐藏域" value ="99"/>
</options>
</xxmx>