4

这是来自 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中的顺序一样吗?这个订单有保证吗?

4

2 回答 2

7

是的。在反射器中查看它,这个方法最终使用了一个XPathNodeIterator 记录在文档顺序中迭代的文档。http://msdn.microsoft.com/en-us/library/1212yhbf.aspx

于 2010-03-30T10:41:43.703 回答
2

尝试使用XPathNavigator而不仅仅是 XmlDocument.Select*。然后您可以创建一个XPathExpression实例并通过AddSort对其进行排序。

于 2010-03-30T10:38:08.097 回答