XPathNodeIterator 클래스

정의

선택된 노드 집합에 대한 반복기를 제공합니다.Provides an iterator over a selected set of nodes.

public ref class XPathNodeIterator abstract : ICloneable, System::Collections::IEnumerable
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
type XPathNodeIterator = class
    interface ICloneable
    interface IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable, IEnumerable
상속
XPathNodeIterator
구현

예제

다음 예제에서는 Select 메서드를 XPathNavigator 클래스를 사용 하 여 설정 노드를 선택 하는 XPathNodeIterator 클래스입니다.The following example uses the Select method of the XPathNavigator class to select a node set using the XPathNodeIterator class.

XPathDocument^ document = gcnew XPathDocument("books.xml");
XPathNavigator^ navigator = document->CreateNavigator();

XPathNodeIterator^ nodes = navigator->Select("/bookstore/book");
nodes->MoveNext();
XPathNavigator^ nodesNavigator = nodes->Current;

XPathNodeIterator^ nodesText = nodesNavigator->SelectDescendants(XPathNodeType::Text, false);

while (nodesText->MoveNext())
    Console::WriteLine(nodesText->Current->Value);
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathNodeIterator nodes = navigator.Select("/bookstore/book");
nodes.MoveNext();
XPathNavigator nodesNavigator = nodes.Current;

XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

while (nodesText.MoveNext())
    Console.WriteLine(nodesText.Current.Value);
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")
nodes.MoveNext()
Dim nodesNavigator As XPathNavigator = nodes.Current

Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)

While nodesText.MoveNext()
    Console.WriteLine(nodesText.Current.Value)
End While

이 예제에서는 books.xml 파일을 입력으로 사용합니다.The example takes the books.xml file as input.

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

설명

XPathNodeIterator 에서 반환 된 개체는 XPathNavigator 클래스가 선택한 노드 집합에서 첫 번째 노드에 배치 되지 않았습니다.An XPathNodeIterator object returned by the XPathNavigator class is not positioned on the first node in a selected set of nodes. 에 대 한 호출을 MoveNext 메서드를 XPathNodeIterator 위치로 클래스를 만들어야를 XPathNodeIterator 선택한 노드 집합에서 첫 번째 노드는 개체.A call to the MoveNext method of the XPathNodeIterator class must be made to position the XPathNodeIterator object on the first node in the selected set of nodes.

사용 하는 경우는 XPathNodeIterator, 현재 위치가 손실은 현재 노드 또는 상위 항목 중 하나를 편집 하면 합니다.When using the XPathNodeIterator, if you edit the current node or any of its ancestors, your current position is lost. 여러 노드를 편집 하려면 선택한 경우 만들를 XPathNavigator 배열, 노드를 모두 복사는 XPathNodeIterator 를 배열에 다음 배열을 통해 반복 및 노드 수정 합니다.If you want to edit a number of nodes that you have selected, create a XPathNavigator array, copy all of the nodes from the XPathNodeIterator into the array, then iterate through the array and modify the nodes.

두 가지 방법으로 반복 하는 XPathNavigator 사용 하 여 컬렉션을 XPathNodeIterator 클래스.There are two ways to iterate over an XPathNavigator collection by using the XPathNodeIterator class.

첫 번째 방법은 사용 하는 MoveNext 메서드 및 호출 Current 현재 가져올 XPathNavigator 다음 예제와 같이 인스턴스:One way is to use the MoveNext method and then call Current to get the current XPathNavigator instance, as in the following example:

while (nodeIterator->MoveNext())
{
    XPathNavigator^ n = nodeIterator->Current;
Console::WriteLine(n->LocalName);
}
while (nodeIterator.MoveNext())
{
    XPathNavigator n = nodeIterator.Current;
    Console.WriteLine(n.LocalName);
}
While nodeIterator.MoveNext()
    Dim n As XPathNavigator = nodeIterator.Current
    Console.WriteLine(n.LocalName)
End While

또 다른 방법은 사용 하는 것을 foreach 루프를 호출 하는 GetEnumerator 메서드 및 사용법 반환된 된 IEnumerator 다음 예제와 같이 노드를 열거 하는 인터페이스:Another way is to use a foreach loop to call the GetEnumerator method and use the returned IEnumerator interface to enumerate the nodes, as in the following example:

for each (XPathNavigator^ n in nodeIterator)
Console::WriteLine(n->LocalName);
foreach (XPathNavigator n in nodeIterator)
    Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
    Console.WriteLine(nav.LocalName)
Next

사용 하 여 MoveNext 하 고 Current 사용할지 GetEnumerator합니다.You should either use MoveNext and Current or use GetEnumerator. 이러한 두 가지 방법을 조합 하면 예기치 않은 결과가 발생할 수 있습니다.Combining these two approaches can cause unexpected results. 예를 들어 경우는 MoveNext 메서드는 먼저 차례로 GetEnumerator 메서드는 foreach 루프를 foreach 루프 결과 컬렉션의 시작 부분에서 하지만 다음의 위치에서를 열거 하기 시작 되지 것입니다는 Current 메서드.For example, if the MoveNext method is called first, and then the GetEnumerator method is called in the foreach loop, the foreach loop will not start enumerating the results from the beginning of the collection, but from the position after the Current method.

상속자 참고

상속 하는 경우는 XPathNodeIterator 클래스 멤버를 재정의 해야 합니다.When you inherit from the XPathNodeIterator class, you must override the following members:

생성자

XPathNodeIterator()

XPathNodeIterator 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the XPathNodeIterator class.

속성

Count

선택된 노드 집합에 포함된 마지막 노드의 인덱스를 가져옵니다.Gets the index of the last node in the selected set of nodes.

Current

파생 클래스에서 재정의된 경우 현재 컨텍스트 노드에 위치한 이 XPathNavigator에 대한 XPathNodeIterator 개체를 가져옵니다.When overridden in a derived class, gets the XPathNavigator object for this XPathNodeIterator, positioned on the current context node.

CurrentPosition

파생 클래스에서 재정의할 때 선택된 노드 집합에서 현재 위치의 인덱스를 가져옵니다.When overridden in a derived class, gets the index of the current position in the selected set of nodes.

메서드

Clone()

파생 클래스에서 재정의된 경우 이 XPathNodeIterator 개체의 복제를 반환합니다.When overridden in a derived class, returns a clone of this XPathNodeIterator object.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetEnumerator()

선택된 노드 집합을 반복하는 IEnumerator 개체를 반환합니다.Returns an IEnumerator object to iterate through the selected node set.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
MoveNext()

파생 클래스에서 재정의하는 경우 XPathNavigator 속성에서 반환된 Current 개체를 선택된 노드 집합의 다음 노드로 이동합니다.When overridden in a derived class, moves the XPathNavigator object returned by the Current property to the next node in the selected node set.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

ICloneable.Clone()

현재 인스턴스의 복사본인 새 개체를 만듭니다.Creates a new object that is a copy of the current instance.

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.Converts an IEnumerable to an IQueryable.

적용 대상