2010-03-30 2 views
3

의 주문 하는 XmlDocument SelectNodes (XPath는) : 결과

<?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> 

나는 다음과 같은 코드를 사용하여 모든 책 노드를 선택 MSDN

에 들어있는 예제 XML, 어떤 순서로 이러한 노드이있을 것입니까?

XmlDocument doc = new XmlDocument(); 
doc.Load("booksort.xml"); 

var nodeList =doc.SelectNodes("bookstore/book"); 

nodelist의 항목 순서는 xml의 순서와 같습니까? 이 명령서가 보장됩니까?

답변

1

XmlDocument.Select * 대신 XPathNavigator을 사용해보십시오. 그런 다음 XPathExpression 인스턴스를 만들고 AddSort을 통해이를 정렬 할 수 있습니다.

+0

내 용도에는 정렬에 사용할 수있는 정보가 없습니다. 그것들은 xml과 같은 순서로 존재해야합니다. – crauscher

+1

다른 의견은 SelectNodes가 문서 순서로 노드를 반환한다고 주장하지만 (xpath 공용체에서 true인지 궁금해한다), msdn에서 어떤 보장도 발견하지 못했다. XPath 1.0 사양은 주문을 보장하지는 않습니다 (이 링크는 http://lists.xml.org/archives/xml-dev/200410/msg00005.html 참조). –