共用方式為


使用 XPathNavigator 選取 XML 資料

XPathNavigator 類別提供一組方法,可以使用 XPath 運算式選取 XPathDocumentXmlDocument 物件中的一組節點。 一旦選取,即可重複處理已選取的節點集。

XPathNavigator 選取方法

XPathNavigator 類別提供一組方法,可以使用 XPath 運算式選取 XPathDocumentXmlDocument 物件中的一組節點。 XPathNavigator 類別也提供了一組最佳化方法,可以選取上階節點、子節點及子代節點,其速度比使用 XPath 運算式快。 若為選取的單一節點,會在 XPathNodeIterator 物件或 XPathNavigator 物件中傳回已選取的節點集。

使用 XPath 運算式選取節點

若要使用 XPath 運算式來選取一組節點,請使用下列其中一種選取方法。

呼叫時,這些方法會傳回一組節點,您可以使用 XPathNodeIterator 物件或 XPathNavigator 物件 (若為選取的單一節點) 來隨意巡覽這些節點。

使用 XPathNodeIterator 物件來巡覽不會影響用於建立它之 XPathNavigator 物件的位置。 從 XPathNavigator 方法傳回的 SelectSingleNode 物件會置於傳回的單一節點上,而且也不會影響用來建立它之 XPathNavigator 物件的位置。

下列範例顯示如何從 XPathNavigator 物件建立 XPathDocument 物件、如何使用 Select 方法來選取 XPathDocument 物件中的節點,以及如何使用 XPathNodeIterator 物件來重複處理已選取的節點。

Dim document As XPathDocument = New XPathDocument("books.xml")  
Dim navigator As XPathNavigator = document.CreateNavigator()  
Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")  
  
While nodes.MoveNext()  
    Console.WriteLine(nodes.Current.Name)  
End While  
XPathDocument document = new XPathDocument("books.xml");  
XPathNavigator navigator = document.CreateNavigator();  
XPathNodeIterator nodes = navigator.Select("/bookstore/book");  
  
while(nodes.MoveNext())  
{  
    Console.WriteLine(nodes.Current.Name);  
}  

該範例採用 books.xml 檔案做為輸入。

<?xml version="1.0" encoding="utf-8" ?> 
<bookstore>
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
        <title>The Autobiography of Benjamin Franklin</title>
        <author>
            <first-name>Benjamin</first-name>
            <last-name>Franklin</last-name>
        </author>
        <price>8.99</price>
    </book>
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
        <title>The Confidence Man</title>
        <author>
            <first-name>Herman</first-name>
            <last-name>Melville</last-name>
        </author>
        <price>11.99</price>
    </book>
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
        <title>The Gorgias</title>
        <author>
            <name>Plato</name>
        </author>
        <price>9.99</price>
    </book>
</bookstore>

最佳化選取方法

SelectChildren 類別的 SelectAncestorsSelectDescendantsXPathNavigator 方法表示一般用來擷取子節點、子代節點及上階節點的 XPath 運算式。 這些方法已針對效能最佳化,而且速度比其相對應的 XPath 運算式快。 SelectChildrenSelectAncestorsSelectDescendants 方法會依據 XPathNodeType 值或要選取之節點的區域名稱及命名空間 URI,來選取上階節點、子節點及子代節點。 選取的上階節點、子節點及子代節點會在 XPathNodeIterator 物件中傳回。

另請參閱