XPathDocument 是只读、随机读取 XML。
XmlDocument 是可读写、随机读取 XML。
一般如果不需要修改 XML,尽量使用 XPathDocument。
下面是两个小技巧:
1、XPathDocument 可以定义排序方式:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxpathxpathnavigatorclassselecttopic.asp
XPathNavigator nav = doc.CreateNavigator();
//Select all books by Jane Austen.
XPathExpression expr;
expr = nav.Compile("descendant::book[author/last-name='Austen']");
//Sort the selected books by title.
expr.AddSort("title", XmlSortOrder.Ascending, XmlCaseOrder.None, "", XmlDataType.Text);
XPathNodeIterator iterator = nav.Select(expr);
2、用 IHasXmlNode 编辑 XPathNodeIterator 返回的 Node
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlihasxmlnodeclasstopic.asp
doc.Load("books.xml");
// Create an XPathNavigator and select all books by Plato.
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator ni = nav.Select("descendant::book[author/name='Plato']");
ni.MoveNext();
// Get the first matching node and change the book price.
XmlNode book = ((IHasXmlNode)ni.Current).GetNode();
book.LastChild.InnerText = "12.95";
Console.WriteLine(book.OuterXml);