排序按字母顺序排列的XML节点上的属性名称 [英] Sort XML nodes alphabetically on attribute name
本文介绍了排序按字母顺序排列的XML节点上的属性名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有,我想具体的节点按字母顺序排序的XML文档。
XML文档
<应答GT;
< LST NAME =facet_counts>
< LST NAME =facet_fields>
< LST NAME =professions_raw_nl>
< INT NAME =药> 2724< / INT>
< INT NAME =理疗> 2474< / INT>
< INT NAME =医生> 2246< / INT>
< INT NAME =牙医> 1309< / INT>
< / LST>
< / LST>
< / LST>
< /响应>
所需的输出结果
牙医(1309)结果
博士(2246)结果
药房(2724)结果
物理疗法(2474)
当前ASP.NET code
暗淡节点的XmlNode = objXML.SelectSingleNode(\"response/lst[@name=\"\"facet_counts\"\"]/lst[@name=\"\"facet_fields\"\"]/lst[@name=\"\"professions_raw_nl\"\"]\")
昏暗sbuilder作为新的StringBuilder
昏暗的导航仪作为的XPathNavigator = node.CreateNavigator()
昏暗的selectEx pression作为XPathEx pression = navigator.Compile(???)< - 我应该用什么样的前pression在这里?
selectEx pression.AddSort(????,XmlSortOrder.Ascending,XmlCaseOrder.None,,XmlDataType.Text)LT; - 我应该用什么在这里前pression ????
昏暗nodeIterator由于声明XPathNodeIterator = navigator.Select(selectEx pression)
虽然nodeIterator.MoveNext()
我怎么能打印节点的名称和值?
虽然结束
解决方案
由于所有的答案似乎与LINQ和我的工作只是想使用普通VB.NET我现在添加的每个节点在一个ArrayList和使用的常规的Array.Sort () 在上面。
是卓有成效的。
I have an XML document for which I want to sort specific nodes alphabetically.
XML document
<response>
<lst name="facet_counts">
<lst name="facet_fields">
<lst name="professions_raw_nl">
<int name="Pharmacy">2724</int>
<int name="Physiotherapy">2474</int>
<int name="Doctor">2246</int>
<int name="Dentist">1309</int>
</lst>
</lst>
</lst>
</response>
Desired output
Dentist (1309)
Doctor (2246)
Pharmacy (2724)
Physiotherapy (2474)
Current ASP.NET code
dim node as XmlNode = objXML.SelectSingleNode("response/lst[@name=""facet_counts""]/lst[@name=""facet_fields""]/lst[@name=""professions_raw_nl""]")
Dim sbuilder As New StringBuilder
Dim navigator As XPathNavigator = node.CreateNavigator()
Dim selectExpression As XPathExpression = navigator.Compile("???") <-- what expression should I use here ???
selectExpression.AddSort("????", XmlSortOrder.Ascending, XmlCaseOrder.None, "", XmlDataType.Text) <-- what expression should I use here ????
Dim nodeIterator As XPathNodeIterator = navigator.Select(selectExpression)
While nodeIterator.MoveNext()
'how can I print the name and value of the node?
End While
解决方案
Since all answers seem to work with Linq and I just wanted to use regular VB.NET I now added each node in an Arraylist and used the regular Array.Sort() on it. Does the trick.
这篇关于排序按字母顺序排列的XML节点上的属性名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文