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
- 実装
例
次の例では、クラスのメソッドをSelectXPathNavigator使用して、クラスを使用してノード セットを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返されるオブジェクトは、選択したノード セットの最初のノードに配置されません。 クラスのメソッドを MoveNext 呼び出して、選択したノードセット XPathNodeIterator の XPathNodeIterator 最初のノードにオブジェクトを配置する必要があります。
を使用する場合、現在の XPathNodeIteratorノードまたはその先祖のいずれかを編集すると、現在の位置は失われます。 選択したノードの数を編集する場合は、配列を XPathNavigator 作成し、配列からすべてのノードを XPathNodeIterator 配列にコピーしてから、配列を反復処理してノードを変更します。
クラスを使用XPathNodeIteratorしてコレクションを反復処理するにはXPathNavigator、2 つの方法があります。
1 つの方法は、次の例のように、メソッドをMoveNext使用し、現在のインスタンスをXPathNavigator取得するために呼び出Currentす方法です。
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
もう 1 つの方法は、次の例のように、ループを 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、CurrentGetEnumerator使用する必要があります。 これら 2 つの方法を組み合わせると、予期しない結果が発生する可能性があります。 たとえば、メソッドが最初に MoveNext 呼び出され、そのメソッド GetEnumerator がループ内で foreach
呼び出された場合、 foreach
ループはコレクションの先頭からではなく、メソッドの後の位置から結果の列挙を Current 開始します。
注意 (実装者)
クラスから継承する場合は、次の XPathNodeIterator メンバーをオーバーライドする必要があります。
コンストラクター
XPathNodeIterator() |
XPathNodeIterator クラスの新しいインスタンスを初期化します。 |
プロパティ
Count |
選択したノード セットの最後のノードのインデックスを取得します。 |
Current |
派生クラスでオーバーライドされると、現在のコンテキスト ノードに位置する、この XPathNodeIterator の XPathNavigator オブジェクトを取得します。 |
CurrentPosition |
派生クラスでオーバーライドされると、選択したノード セットの現在の位置のインデックスを取得します。 |
メソッド
Clone() |
派生クラスでオーバーライドされた場合、この XPathNodeIterator オブジェクトの複製を返します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetEnumerator() |
選択したノード セットを反復処理する IEnumerator オブジェクトを返します。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
MoveNext() |
派生クラスでオーバーライドされると、Current プロパティによって返された XPathNavigator オブジェクトを、選択されたノード セットにおける次のノードに移動させます。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
ICloneable.Clone() |
現在のインスタンスのコピーである新しいオブジェクトを作成します。 |
拡張メソッド
Cast<TResult>(IEnumerable) |
IEnumerable の要素を、指定した型にキャストします。 |
OfType<TResult>(IEnumerable) |
指定された型に基づいて IEnumerable の要素をフィルター処理します。 |
AsParallel(IEnumerable) |
クエリの並列化を有効にします。 |
AsQueryable(IEnumerable) |
IEnumerable を IQueryable に変換します。 |