我在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排序?
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排序?
//用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>
然后循环时按索引循环,
法子苯了点,暂且管用。