使用XPathExpression的AddSort方法获得排序的Xml解析结果的代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.XPath;

namespace ConsoleTestApp001
{
    class Program
    {
        static void Main(string[] args)
        {
            string xml = @"<?xml version='1.0'?>
                            <folder id='A' type='none'>
                              <fields>
                                <field name='title'>Root</field>
                                <field name='group'>z</field>
                              </fields>
                              <folder id='A3' type='book'>
                                  <fields>
                                    <field name='title'>c</field>
                                    <field name='group'>G-c</field>
                                  </fields>
                              </folder>
                              <folder id='A2' type='music'>
                                  <fields>
                                    <field name='title'>b</field>
                                    <field name='group'>G-b</field>
                                  </fields>
                              </folder>
                              <folder id='A1' type='image'>
                                  <fields>
                                    <field name='title'>a</field>
                                    <field name='group'>G-a</field>
                                  </fields>
                              </folder>
                            </folder>";

            XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(xml));
            reader.Read();
            XPathDocument doc = new XPathDocument(reader);
            XPathNavigator nav = doc.CreateNavigator();

            //Select all books by Jane Austen.
            XPathExpression expr;
            expr = nav.Compile("/folder/folder");

            //Sort the selected books by title.
            expr.AddSort("fields/field[@name='title']", XmlSortOrder.Ascending, XmlCaseOrder.None, "", XmlDataType.Text);

            //Display the selection.
            XPathNodeIterator iterator = nav.Select(expr);
            while (iterator.MoveNext())
            {
                XPathNavigator nav2 = iterator.Current.Clone();
                string id = nav2.GetAttribute("id", "");
                string type = nav2.GetAttribute("type", "");
                XPathNavigator nav3 = nav2.SelectSingleNode("fields/field[@name='title']");

                Console.WriteLine("id:{0}; type:{1}; title:{2}", id, type, nav3.Value); 
            }

            Console.Read();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值