Share via


XPathNavigator를 사용하여 XML 데이터 선택

XPathNavigator 클래스는 XPath 식을 사용하여 XPathDocument 또는 XmlDocument 개체의 노드 집합을 선택하는 데 사용되는 메서드 집합을 제공합니다. 선택한 후에는 선택한 노드 집합을 반복할 수 있습니다.

XPathNavigator 선택 메서드

XPathNavigator 클래스는 XPath 식을 사용하여 XPathDocument 또는 XmlDocument 개체의 노드 집합을 선택하는 데 사용되는 메서드 집합을 제공합니다. 또한 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 클래스의 SelectAncestors, SelectDescendantsXPathNavigator 메서드는 일반적으로 자식, 하위 및 상위 노드를 검색하는 데 사용하는 XPath 식을 나타냅니다. 이러한 메서드는 성능을 위해 최적화되었으며 해당 XPath 식보다 빠릅니다. SelectChildren, SelectAncestorsSelectDescendants 메서드는 선택할 노드의 XPathNodeType 값 또는 로컬 이름과 네임스페이스 URI를 기반으로 상위, 자식 및 하위 노드를 선택합니다. 선택된 상위, 자식 및 하위 노드는 XPathNodeIterator 개체에 반환됩니다.

참고 항목