<Root>
<Company>
<Department id="001">
<Person>
<name>Name1</name>
<sort>1</sort>
<birthday>2000-1-1</birthday>
</Person>
<Person>
<name>Name2</name>
<sort>2</sort>
<birthday>2000-1-2</birthday>
</Person>
<Person>
<name>Name3</name>
<sort>3</sort>
<birthday>2000-1-3</birthday>
</Person>
</Department>
<Department id="002">
<Person>
<name>Name1</name>
<sort>1</sort>
<birthday>2000-1-1</birthday>
</Person>
<Person>
<name>Name2</name>
<sort>2</sort>
<birthday>2000-1-2</birthday>
</Person>
<Person>
<name>Name3</name>
<sort>3</sort>
<birthday>2000-1-3</birthday>
</Person>
</Department>
</Company>
</Root>
下面语句虽已按sort排序,读出结果依次为sort值3、2、1,但只能读取sort元素值,请问有没什么方法可以读取依sort排序来读取所有Person的子节点.谢谢~!~!
string strPath = Server.MapPath("test.xml");
XPathDocument doc = new XPathDocument(strPath);
XPathNavigator nav = doc.CreateNavigator();
XPathExpression exp = nav.Compile("/Root/Company/Department[@id='001']/Person/sort");
exp.AddSort("text())",XmlSortOrder.Descending,XmlCaseOrder.None,"",XmlDataType.Text);
XPathNodeIterator nodeIter2 = nav.Select(exp);
while (nodeIter2.MoveNext())
{
Response.Write(nodeIter2.Current.value);
}
<Company>
<Department id="001">
<Person>
<name>Name1</name>
<sort>1</sort>
<birthday>2000-1-1</birthday>
</Person>
<Person>
<name>Name2</name>
<sort>2</sort>
<birthday>2000-1-2</birthday>
</Person>
<Person>
<name>Name3</name>
<sort>3</sort>
<birthday>2000-1-3</birthday>
</Person>
</Department>
<Department id="002">
<Person>
<name>Name1</name>
<sort>1</sort>
<birthday>2000-1-1</birthday>
</Person>
<Person>
<name>Name2</name>
<sort>2</sort>
<birthday>2000-1-2</birthday>
</Person>
<Person>
<name>Name3</name>
<sort>3</sort>
<birthday>2000-1-3</birthday>
</Person>
</Department>
</Company>
</Root>
下面语句虽已按sort排序,读出结果依次为sort值3、2、1,但只能读取sort元素值,请问有没什么方法可以读取依sort排序来读取所有Person的子节点.谢谢~!~!
string strPath = Server.MapPath("test.xml");
XPathDocument doc = new XPathDocument(strPath);
XPathNavigator nav = doc.CreateNavigator();
XPathExpression exp = nav.Compile("/Root/Company/Department[@id='001']/Person/sort");
exp.AddSort("text())",XmlSortOrder.Descending,XmlCaseOrder.None,"",XmlDataType.Text);
XPathNodeIterator nodeIter2 = nav.Select(exp);
while (nodeIter2.MoveNext())
{
Response.Write(nodeIter2.Current.value);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货