XML DOM XPathResult オブジェクト

XPath クエリの結果。

XPathResult オブジェクト

XPathResult オブジェクトは XPath 表現の値を表す。 Document.evaluate() および XPathExpression.evaluate() 戻る。XPath クエリは文字列、数字、ブール値、ノード、ノードのリストとして計算される。XPath 実現はノードのリストをいくつかの異なる方法で返すため、このオブジェクトは XPath クエリの実際の結果を取得するためにやや複雑な API を定義している。

XPathResult を使用するには、まず resultType 属性を確認します。この属性は XPathResult の定数を保存し、結果値を特定するために使用する属性およびメソッドを決定します。現在の resultType に定義されていないメソッドの呼び出しや、定義されていない属性の読み取りは例外を発生させます。

IE は XPathResult API をサポートしていません。IE で XPath 検索を実行するには、以下を参照してください: Node.selectNodes() および Node.selectSingleNode() .

XPathResult オブジェクトの定数

以下の定数は XPath 検索が返す可能性のあるタイプを定義しています。XPathResult オブジェクトの resultType 属性はこれらの値のうちの1つを保存し、オブジェクトがどのような結果を保存するかを指定します。これらの定数は Document.evaluate() および XPathExpression.evaluate() と一緒に使用され、期待される結果タイプを指定します。

これらの定数およびその意味は以下の通りです:

ANY_TYPE
この値を Document.evaluate() または XPathExpression.evaluate() に渡して、受け入れ可能な結果タイプを指定します。属性 resultType はこの値を設定しません。
NUMBER_TYPE
numbervalue が結果を保存します。
STRING_TYPE
stringvalue が結果を保存します。
BOOLEAN_TYPE
booleanValue が結果を保存します。
UNORDERED_NODE_ITERATOR_TYPE
この結果はノードの無序列表で、iterateNext() を繰り返し呼び出して null が返されるまで順にアクセスできます。このイテレーションプロセス中、ドキュメントは変更されてはなりません。
ORDERED_NODE_ITERATOR_TYPE
結果はドキュメント内の属性に従って並べ替えられたノードリストで、iterateNext() を繰り返し呼び出して null が返されるまで順にアクセスできます。このイテレーションプロセス中、ドキュメントは変更されてはなりません。
UNORDERED_NODE_SNAPSHOT_TYPE
結果はランダムアクセスのノードリストです。snapshotLength 属性はリストの長さを指定し、snapshotItem() メソッドは指定されたインデックスのノードを返します。ノードはドキュメント内での出現順とは一致しない可能性があります。この結果は「スナップショット」として、ドキュメントが変更された場合でも有効です。
ORDERED_NODE_SNAPSHOT_TYPE
この結果は、UNORDERED_NODE_SNAPSHOT_TYPE と同様にランダムアクセス可能なノードリストです。ただし、このリストはドキュメント内の順序に従って並べ替えられています。
ANY_UNORDERED_NODE_TYPE
singleNodeValue 属性は、クエリに一致するノードを参照します。一致するノードがない場合、null になります。複数のノードがクエリに一致する場合、singleNodeValue はどのノードでも可能です。
FIRST_ORDERED_NODE_TYPE
singleNodeValue は、ドキュメント内の最初にクエリに一致するノードを保存します。一致するノードがない場合、null になります。

XPathResult オブジェクトのインスタンス属性

ここには、resultType が特定の値を保存している場合にのみ有効な多くの属性があります。現在の resultType に定義されていない属性にアクセスすると、例外が発生します。

booleanValue
resultType が BOOLEAN_TYPE である場合、結果値を保存します。
invalidIteratorState
resultType が ITERATOR_TYPE の定数のいずれかであり、ドキュメントが変更されている場合、true になります;結果が返されたため、イテレータは無効になります。
numberValue
resultType が NUMBER_TYPE である場合、結果値を保存します。
resultType
XPath 検索でどのような結果を返すかを指定します。この値は前述の定数のいずれかです。この属性の値は、どの他の属性やメソッドを使用できるかを示します。
singleNodeValue
resultType が XPathResult.ANY_UNORDERED_NODE_TYPE または XPathResult.FIRST_UNORDERED_NODE_TYPE である場合、結果値を保存します。
snapshotLength
resultType が UNORDERED_NODE_SNAPSHOT_TYPE または ORDERED_NODE_ITERATOR_TYPE である場合、返されるノード数を指定します。この属性は snapshotItem() と組み合わせて使用されます。
stringValue
resultType が STRING_TYPE の場合、結果値を保存します。

XPathResult オブジェクトのメソッド

メソッド 説明
iterateNext() resultType が UNORDERED_NODE_ITERATOR_TYPE または ORDERED_NODE_ITERATOR_TYPE の場合、このメソッドを使用します。
snapshotItem() 指定されたインデックスのノードをリストに返します。このメソッドは、resultType が UNORDERED_NODE_SNAPSHOT_TYPE または ORDERED_NODE_SNAPSHOT_TYPE の場合にのみ使用できます。snapshotLength プロパティとこのメソッドを一緒に使用します。

関連ページ

Document.evaluate() および XPathExpression.evaluate()