这是来自MSDN的示例xml
<?xml version="1.0"?>
<!-- A fragment of a book store inventory database -->
<bookstore xmlns:bk="urn:samples">
<book genre="novel" publicationdate="1997" bk:ISBN="1-861001-57-8">
<title>Pride And Prejudice</title>
</book>
<book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
<title>The Handmaid's Tale</title>
</book>
<book genre="novel" publicationdate="1991" bk:ISBN="1-861001-57-6">
<title>Emma</title>
</book>
<book genre="novel" publicationdate="1982" bk:ISBN="1-861001-45-3">
<title>Sense and Sensibility</title>
</book>
</bookstore>
当我使用以下代码选择所有书籍节点时,这些节点将具有哪个顺序?
XmlDocument doc = new XmlDocument();
doc.Load("booksort.xml");
var nodeList =doc.SelectNodes("bookstore/book");
nodelist中项目的顺序是否与xml中的顺序相同?这个订单有保证吗?
答案 0 :(得分:6)
是。在反射器中查看它时,此方法最终使用XPathNodeIterator
,其被记录为按文档顺序迭代。 http://msdn.microsoft.com/en-us/library/1212yhbf.aspx
答案 1 :(得分:1)
尝试使用XPathNavigator而不仅仅是XmlDocument.Select *。然后,您可以创建一个XPathExpression实例,并通过AddSort对其进行排序。