排序按字母顺序排列的XML节点上的属性名称 [英] Sort XML nodes alphabetically on attribute name

查看:681
本文介绍了排序按字母顺序排列的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆