XPathNodeIterator 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
선택된 노드 집합에 대한 반복기를 제공합니다.
public ref class XPathNodeIterator abstract : ICloneable, System::Collections::IEnumerable
public ref class XPathNodeIterator abstract : System::Collections::IEnumerable
public ref class XPathNodeIterator abstract : ICloneable
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
public abstract class XPathNodeIterator : System.Collections.IEnumerable
public abstract class XPathNodeIterator : ICloneable
type XPathNodeIterator = class
interface IEnumerable
interface ICloneable
type XPathNodeIterator = class
interface IEnumerable
type XPathNodeIterator = class
interface ICloneable
type XPathNodeIterator = class
interface ICloneable
interface IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable, IEnumerable
Public MustInherit Class XPathNodeIterator
Implements IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable
- 상속
-
XPathNodeIterator
- 구현
예제
다음 예제에서는 클래스의 Select 메서드를 XPathNavigator 사용하여 클래스를 사용하여 노드 집합을 XPathNodeIterator 선택합니다.
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
파일을 입력으로 사용합니다.
<?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 반환된 개체가 선택한 노드 집합의 첫 번째 노드에 배치되지 않습니다. 선택한 노드 집합의 XPathNodeIterator 첫 번째 노드에 개체를 XPathNodeIterator 배치하려면 클래스 메서드를 호출 MoveNext 해야 합니다.
를 XPathNodeIterator사용하는 경우 현재 노드 또는 상위 노드를 편집하면 현재 위치가 손실됩니다. 선택한 여러 노드를 편집하려면 배열을 XPathNavigator 만들고 모든 노드 XPathNodeIterator 를 배열로 복사한 다음 배열을 반복하고 노드를 수정합니다.
클래스를 사용하여 컬렉션을 반복 XPathNavigator 하는 방법에는 두 가지가 있습니다 XPathNodeIterator .
한 가지 방법은 다음 예제와 같이 메서드를 사용한 MoveNext 다음 호출 Current 하여 현재 XPathNavigator 인스턴스를 가져오는 것입니다.
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 인터페이스를 사용하여 노드를 열거하는 것입니다.
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합니다. 이러한 두 가지 방법을 결합하면 예기치 않은 결과가 발생할 수 있습니다. 예를 들어 메서드가 MoveNext 먼저 호출된 다음 GetEnumerator 메서드가 루프 foreach
에서 foreach
호출되는 경우 루프는 컬렉션의 시작 부분과 메서드 뒤 Current 의 위치에서 결과를 열거하기 시작하지 않습니다.
구현자 참고
상속 하는 경우는 XPathNodeIterator 클래스 멤버를 재정의 해야 합니다.
생성자
XPathNodeIterator() |
XPathNodeIterator 클래스의 새 인스턴스를 초기화합니다. |
속성
Count |
선택된 노드 집합에 포함된 마지막 노드의 인덱스를 가져옵니다. |
Current |
파생 클래스에서 재정의된 경우 현재 컨텍스트 노드에 위치한 이 XPathNavigator에 대한 XPathNodeIterator 개체를 가져옵니다. |
CurrentPosition |
파생 클래스에서 재정의할 때 선택된 노드 집합에서 현재 위치의 인덱스를 가져옵니다. |
메서드
Clone() |
파생 클래스에서 재정의된 경우 이 XPathNodeIterator 개체의 복제를 반환합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetEnumerator() |
선택된 노드 집합을 반복하는 IEnumerator 개체를 반환합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MoveNext() |
파생 클래스에서 재정의하는 경우 XPathNavigator 속성에서 반환된 Current 개체를 선택된 노드 집합의 다음 노드로 이동합니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
ICloneable.Clone() |
현재 인스턴스의 복사본인 새 개체를 만듭니다. |
확장 메서드
Cast<TResult>(IEnumerable) |
IEnumerable의 요소를 지정된 형식으로 캐스팅합니다. |
OfType<TResult>(IEnumerable) |
지정된 형식에 따라 IEnumerable의 요소를 필터링합니다. |
AsParallel(IEnumerable) |
쿼리를 병렬화할 수 있도록 합니다. |
AsQueryable(IEnumerable) |
IEnumerable을 IQueryable로 변환합니다. |