我在C#中,
   xmlNodeList  aa;
  aa = domRoot.selectedNodes("/Root/Items");xml结构是:
 <Root>
   <Items OrderCode =2>aaa</Items>
   <Items OrderCode =1>aaa</Items>
   <Items OrderCode =3>aaa</Items>
   <Items OrderCode =4>aaa</Items>
 </Root>XPath应该怎么写,才能按照OrderCode排序?

解决方案 »

  1.   

    你可以形成一个DATASET用DATAVIEW进行排
      

  2.   

    see://
    //用XPath实现列的排序
    //
    XmlDocument doc=new XmlDocument();
    doc.Load(@"E:\test.xml");
    //创建导航器
    XPathNavigator nav=doc.CreateNavigator();
    //create XPathExpression
    XPathExpression exp=nav.Compile("/ee/message");
    //对Size 列进行降序排列
    ///--------------------------------------------------------
    ///如要对多列进行排序,须用XPath中的concat这个函数,
    ///.eg:对tile , lastname2列进行排序:
    ///exp.AddSort("concat(title,','),lastname)",.........);
    ///其中的,是分隔作用
    ///---------------------------------------------------------
    exp.AddSort("size",XmlSortOrder.Descending,XmlCaseOrder.None,"",XmlDataType.Number);
    //create Iterator
    XPathNodeIterator iter=nav.Select(exp);
    //循环迭代对象
    while(iter.MoveNext())
    {
                    XPathNavigator copy=iter.Current.Clone();
    //write the size child node
                    copy.MoveToFirstChild();
    copy.MoveToNext();
                    copy.MoveToNext();
                    Console.WriteLine(copy.Value);
    }==============================================================
    Xml文件:<?xml version="1.0" ?> 
    <ee>
     <message>
      <time>2004-8-24 11:13:53</time> 
      <offset>0</offset> 
      <size>11297</size> 
      </message>
     <message>
      <time>2004-8-24 11:13:53</time> 
      <offset>11297</offset> 
      <size>11325</size> 
      </message>
     <message>
      <time>2004-8-24 11:13:53</time> 
      <offset>22622</offset> 
      <size>11309</size> 
      </message>
     <message>
      <time>2004-8-24 11:13:53</time> 
      <offset>33931</offset> 
      <size>11327</size> 
      </message>
    </ee>
      

  3.   

    我没用各位的方法,自己想了个法子,每个项中加个索引index =n
    然后循环时按索引循环,
    法子苯了点,暂且管用。