public interface XPath
XPath
はXPath評価環境および式へのアクセスを提供します。 XPath評価は、次の表に示す要因の影響を受けます。
要因 | 動作 |
---|---|
context | コンテキストの型は実装依存です。 値がnullの場合、操作はコンテキストに依存しない必要があります。そうでない場合は、XPathExpressionExceptionがスローされます。 XPath式を評価するため、DocumentFragmentがドキュメント・ノードと同様に扱われる。 |
変数 |
式に変数の参照が含まれる場合、setXPathVariableResolver(XPathVariableResolver resolver) で設定されたXPathVariableResolver によってその値が見つけられる。 変数リゾルバが定義されていないか、リゾルバから変数に対してnull が返された場合、XPathExpressionException が生成される。 変数の値は、1回の評価の過程を通じて不変でなければならない。
|
functions |
式に関数の参照が含まれる場合、setXPathFunctionResolver(XPathFunctionResolver resolver) で設定されたXPathFunctionResolver によって関数が見つけられる。 関数リゾルバが定義されていないか、関数リゾルバから関数に対してnull が返された場合、XPathExpressionException が生成される。
|
QNames |
式の中のQNameはsetNamespaceContext(NamespaceContext nsContext) で設定されたXPath名前空間コンテキストと照らして解決される。
|
result |
式の評価の結果は目的の戻り値の型のインスタンスに変換される。 有効な戻り値の型は、XPathConstants に定義する。 戻り値の型への変換はXPath変換規則に従う。
|
XPathオブジェクトはスレッドセーフではなく、再入不可能です。 つまり、アプリケーション側で、どのような場合でも1つのXPath
オブジェクトが複数のスレッドから使用されることがないようにする必要があります。また、evaluate
メソッドが呼び出されている間、アプリケーションは再帰的にevaluate
メソッドを呼び出すことができません。
- 導入されたバージョン:
- 1.5
- 関連項目:
- XML Path Language (XPath) Version 1.0
-
メソッドのサマリー
修飾子と型 メソッド 説明 XPathExpression
compile(String expression)
あとで評価するため、Xpath式をコンパイルします。String
evaluate(String expression, Object item)
指定されたコンテキストでXPath式を評価し、結果をString
として返します。Object
evaluate(String expression, Object item, QName returnType)
指定されたコンテキストでXPath
式を評価し、結果を指定された型として返します。String
evaluate(String expression, InputSource source)
指定されたInputSource
のコンテキストでXPath式を評価し、結果をString
として返します。Object
evaluate(String expression, InputSource source, QName returnType)
指定されたInputSource
のコンテキストでXPath式を評価し、結果を指定された型として返します。default XPathEvaluationResult<?>
evaluateExpression(String expression, Object item)
指定したコンテキストでXPath式を評価します。default <T> T
evaluateExpression(String expression, Object item, Class<T> type)
指定されたコンテキストでXPath式を評価し、結果をclass type
で指定された型で返しますdefault XPathEvaluationResult<?>
evaluateExpression(String expression, InputSource source)
指定したコンテキストでXPath式を評価します。default <T> T
evaluateExpression(String expression, InputSource source, Class<T> type)
指定されたsource
のコンテキストでXPath式を評価し、指定されたとおりに結果を返します。NamespaceContext
getNamespaceContext()
現在の名前空間コンテキストを返します。XPathFunctionResolver
getXPathFunctionResolver()
現在の関数リゾルバを返します。XPathVariableResolver
getXPathVariableResolver()
現在の変数リゾルバを返します。void
reset()
このXPath
を元の構成にリセットします。void
setNamespaceContext(NamespaceContext nsContext)
名前空間コンテキストを設定します。void
setXPathFunctionResolver(XPathFunctionResolver resolver)
関数リゾルバを設定します。void
setXPathVariableResolver(XPathVariableResolver resolver)
変数リゾルバを設定します。
-
メソッドの詳細
-
reset
void reset()このXPath
を元の構成にリセットします。XPath
は、XPathFactory.newXPath()
で作成された時点の状態にリセットされます。reset()
は、既存のXPath
の再使用を許可するように設計されているため、新しいXPath
の作成に関連するリソースを節約できます。XPath
をリセットした場合、同じXPathFunctionResolver
、XPathVariableResolver
またはNamespaceContext
Object
(たとえば、Object.equals(Object obj)
)を持つことは保証されません。 機能的に同じXPathFunctionResolver
、XPathVariableResolver
およびNamespaceContext
を持つことは保証されます。 -
setXPathVariableResolver
void setXPathVariableResolver(XPathVariableResolver resolver)変数リゾルバを設定します。resolver
がnull
の場合、NullPointerException
がスローされます。- パラメータ:
resolver
- 変数リゾルバ。- 例外:
NullPointerException
-resolver
がnull
の場合。
-
getXPathVariableResolver
XPathVariableResolver getXPathVariableResolver()現在の変数リゾルバを返します。有効な変数リゾルバがない場合、
null
が返されます。- 戻り値:
- 現在の変数リゾルバ。
-
setXPathFunctionResolver
void setXPathFunctionResolver(XPathFunctionResolver resolver)関数リゾルバを設定します。resolver
がnull
の場合、NullPointerException
がスローされます。- パラメータ:
resolver
- XPath関数リゾルバ。- 例外:
NullPointerException
-resolver
がnull
の場合。
-
getXPathFunctionResolver
XPathFunctionResolver getXPathFunctionResolver()現在の関数リゾルバを返します。有効な関数リゾルバがない場合、
null
が返されます。- 戻り値:
- 現在の関数リゾルバ。
-
setNamespaceContext
void setNamespaceContext(NamespaceContext nsContext)名前空間コンテキストを設定します。nsContext
がnull
の場合、NullPointerException
がスローされます。- パラメータ:
nsContext
- 使用する名前空間コンテキスト。- 例外:
NullPointerException
-nsContext
がnull
の場合。
-
getNamespaceContext
NamespaceContext getNamespaceContext()現在の名前空間コンテキストを返します。有効な名前空間コンテキストがない場合、
null
が返されます。- 戻り値:
- 現在の名前空間コンテキスト。
-
compile
XPathExpression compile(String expression) throws XPathExpressionExceptionあとで評価するため、Xpath式をコンパイルします。expression
にXPathFunction
が含まれている場合は、XPathFunctionResolver
で使用可能である必要があります。XPathFunction
がXPathFunctionResolver
で解決できない場合、XPathExpressionException
がスローされます。expression
に変数が含まれている場合は、コンパイル時に有効なXPathVariableResolver
を使用してそれらを解決します。- パラメータ:
expression
- XPath式。- 戻り値:
- コンパイル済みのXPath式。
- 例外:
XPathExpressionException
-expression
をコンパイルできない場合。NullPointerException
-expression
がnull
の場合。
-
evaluate
Object evaluate(String expression, Object item, QName returnType) throws XPathExpressionException指定されたコンテキストでXPath
式を評価し、結果を指定された型として返します。コンテキスト項目の評価、変数、関数、および
QName
の解決と戻り値の型の変換については「XPath式の評価」を参照してください。パラメータ
item
は、XPath式が操作されるコンテキストを表します。 コンテキストの型は実装依存です。 値がnull
の場合、操作はコンテキストに依存しない必要があります。そうしないと、XPathExpressionExceptionがスローされます。- 実装上のノート:
- コンテキストの型は通常
Node
です。 - パラメータ:
expression
- XPath式。item
- XPath式が評価されるコンテキスト。returnType
- 結果の型は、XPath式によって返されると予想されます。- 戻り値:
- XPath式を
returnType
のObject
として評価した結果。 - 例外:
XPathExpressionException
-expression
を評価できない場合。IllegalArgumentException
-returnType
がXPathConstants
(NUMBER
、STRING
、BOOLEAN
、NODE
またはNODESET
)で定義されているタイプの1つでない場合。NullPointerException
-expressionまたはreturnType
がnull
の場合。
-
evaluate
String evaluate(String expression, Object item) throws XPathExpressionException指定されたコンテキストでXPath式を評価し、結果をString
として返します。このメソッドは、
XPathConstants.STRING
のreturnType
を指定してevaluate(String expression, Object item, QName returnType)
を呼び出します。コンテキスト項目の評価、変数、関数、およびQNameの解決と戻り値の型の変換については「XPath式の評価」を参照してください。
パラメータ
item
は、XPath式が操作されるコンテキストを表します。 コンテキストの型は実装依存です。 値がnull
の場合、操作はコンテキストに依存しない必要があります。そうしないと、XPathExpressionExceptionがスローされます。- 実装上のノート:
- コンテキストの型は通常
Node
です。 - パラメータ:
expression
- XPath式。item
- XPath式が評価されるコンテキスト。- 戻り値:
- XPath式を
String
として評価した結果。 - 例外:
XPathExpressionException
-expression
を評価できない場合。NullPointerException
-expression
がnull
の場合。
-
evaluate
Object evaluate(String expression, InputSource source, QName returnType) throws XPathExpressionException指定されたInputSource
のコンテキストでXPath式を評価し、結果を指定された型として返します。このメソッドは
InputSource
のデータ・モデルを構築し、結果として得られるドキュメント・オブジェクトに対してevaluate(String expression, Object item, QName returnType)
を呼び出します。コンテキスト項目の評価、変数、関数、およびQNameの解決と戻り値の型の変換については「XPath式の評価」を参照してください。
- パラメータ:
expression
- XPath式。source
- 評価するドキュメントの入力ソース。returnType
- 目的の戻り値の型。- 戻り値:
- 式の評価の結果をカプセル化する
Object
。 - 例外:
XPathExpressionException
- expressionを評価できない場合。IllegalArgumentException
-returnType
がXPathConstants
に定義された型でない場合。NullPointerException
-expression、source、またはreturnType
がnull
の場合。
-
evaluate
String evaluate(String expression, InputSource source) throws XPathExpressionException指定されたInputSource
のコンテキストでXPath式を評価し、結果をString
として返します。このメソッドは、
XPathConstants.STRING
のreturnType
を指定してevaluate(String expression, InputSource source, QName returnType)
を呼び出します。コンテキスト項目の評価、変数、関数、およびQNameの解決と戻り値の型の変換については「XPath式の評価」を参照してください。
- パラメータ:
expression
- XPath式。source
- 評価するドキュメントのInputSource
。- 戻り値:
- 式を評価し、結果を
String
に変換した結果であるString
。 - 例外:
XPathExpressionException
- expressionを評価できない場合。NullPointerException
-expressionまたはsource
がnull
の場合。
-
evaluateExpression
default <T> T evaluateExpression(String expression, Object item, Class<T> type) throws XPathExpressionException指定されたコンテキストでXPath式を評価し、結果をclass type
で指定された型で返しますパラメータ
item
は、XPath式が操作されるコンテキストを表します。 コンテキストの型は実装依存です。 値がnull
の場合、操作はコンテキストに依存しない必要があります。そうしないと、XPathExpressionExceptionがスローされます。- 実装要件:
- XPath APIのデフォルトの実装は、次のものと同等です:
(T)evaluate(expression, item, XPathEvaluationResult.XPathResultType.getQNameType(type));
evaluate
メソッドはANY
型をサポートしていないため、XPathEvaluationResultを型として指定するとIllegalArgumentExceptionが発生します。ANY
型をサポートする実装では、このメソッドをオーバーライドする必要があります。 - 実装上のノート:
- コンテキストの型は通常
Node
です。 - 型パラメータ:
T
- XPath式によって返されるクラスの型。- パラメータ:
expression
- XPath式。item
- XPath式が評価されるコンテキスト。type
- XPath式によって返されると予想されるクラスの型。- 戻り値:
- 式を評価した結果。
- 例外:
XPathExpressionException
- 式を評価できない場合。IllegalArgumentException
-type
がXPathEvaluationResult.XPathResultType
で定義された型に対応する型でないか、型としてXPathEvaluationResultが指定されていますが、ANY
型をサポートする実装は使用できません。NullPointerException
-expression or type
がnull
の場合。- 導入されたバージョン:
- 9
-
evaluateExpression
default XPathEvaluationResult<?> evaluateExpression(String expression, Object item) throws XPathExpressionException指定したコンテキストでXPath式を評価します。 これは、型XPathEvaluationResult
のevaluateExpression(String expression, Object item, Class type)
を呼び出すのと同じです:evaluateExpression(expression, item, XPathEvaluationResult.class);
パラメータ
item
は、XPath式が操作されるコンテキストを表します。 コンテキストの型は実装依存です。 値がnull
の場合、操作はコンテキストに依存しない必要があります。そうしないと、XPathExpressionExceptionがスローされます。- 実装要件:
- XPath APIのデフォルトの実装は、次のものと同等です:
evaluateExpression(expression, item, XPathEvaluationResult.class);
evaluate
メソッドはANY
型をサポートしていないため、このメソッドのデフォルト実装では常にIllegalArgumentExceptionがスローされます。 したがって、ANY
型をサポートする実装は、このメソッドをオーバーライドする必要があります。 - 実装上のノート:
- コンテキストの型は通常
Node
です。 - パラメータ:
expression
- XPath式。item
- XPath式が評価されるコンテキスト。- 戻り値:
- 式を評価した結果。
- 例外:
XPathExpressionException
- 式を評価できない場合。IllegalArgumentException
- このメソッドの実装がANY
型をサポートしていない場合。NullPointerException
-expression
がnull
の場合。- 導入されたバージョン:
- 9
-
evaluateExpression
default <T> T evaluateExpression(String expression, InputSource source, Class<T> type) throws XPathExpressionException指定されたsource
のコンテキストでXPath式を評価し、指定されたとおりに結果を返します。このメソッドは、
InputSource
のデータ・モデルを構築し、結果のドキュメント・オブジェクトに対してevaluateExpression(String expression, Object item, Class type)
を呼び出します。 データ・モデルは通常Document
です- 実装要件:
- XPath APIのデフォルトの実装は、次のものと同等です:
(T)evaluate(expression, source, XPathEvaluationResult.XPathResultType.getQNameType(type));
evaluate
メソッドはANY
型をサポートしていないため、XPathEvaluationResultを型として指定するとIllegalArgumentExceptionが発生します。ANY
型をサポートする実装では、このメソッドをオーバーライドする必要があります。 - 型パラメータ:
T
- XPath式によって返されるクラスの型。- パラメータ:
expression
- XPath式。source
- 評価するドキュメントの入力ソース。type
- XPath式によって返されると予想されるクラスの型。- 戻り値:
- 式を評価した結果。
- 例外:
XPathExpressionException
- 式を評価できない場合。IllegalArgumentException
-type
がXPathResultType
で定義された型に対応する型でないか、型としてXPathEvaluationResultが指定されていますが、ANY
型をサポートする実装は使用できません。NullPointerException
-expression, source or type
がnull
の場合。- 導入されたバージョン:
- 9
-
evaluateExpression
default XPathEvaluationResult<?> evaluateExpression(String expression, InputSource source) throws XPathExpressionException指定したコンテキストでXPath式を評価します。 これは、型XPathEvaluationResult
のevaluateExpression(String expression, Object item, Class type)
を呼び出すのと同じです:evaluateExpression(expression, item, XPathEvaluationResult.class);
- 実装要件:
- XPath APIのデフォルトの実装は、次のものと同等です:
evaluateExpression(expression, source, XPathEvaluationResult.class);
evaluate
メソッドはANY
型をサポートしていないため、このメソッドのデフォルト実装では常にIllegalArgumentExceptionがスローされます。 したがって、ANY
型をサポートする実装は、このメソッドをオーバーライドする必要があります。 - パラメータ:
expression
- XPath式。source
- 評価するドキュメントの入力ソース。- 戻り値:
- 式を評価した結果。
- 例外:
XPathExpressionException
- 式を評価できない場合。IllegalArgumentException
- このメソッドの実装がANY
型をサポートしていない場合。NullPointerException
-expressionまたはsource
がnull
の場合。- 導入されたバージョン:
- 9
-