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
- 
メソッドのサマリー修飾子と型メソッド説明あとで評価するため、Xpath式をコンパイルします。指定されたコンテキストでXPath式を評価し、結果をStringとして返します。指定されたコンテキストでXPath式を評価し、結果を指定された型として返します。evaluate(String expression, InputSource source)指定されたInputSourceのコンテキストでXPath式を評価し、結果をStringとして返します。evaluate(String expression, InputSource source, QName returnType)指定されたInputSourceのコンテキストでXPath式を評価し、結果を指定された型として返します。default XPathEvaluationResult<?>evaluateExpression(String expression, Object item)指定したコンテキストでXPath式を評価します。default <T> TevaluateExpression(String expression, Object item, Class<T> type)指定されたコンテキストでXPath式を評価し、結果をclass typeで指定された型で返しますdefault XPathEvaluationResult<?>evaluateExpression(String expression, InputSource source)指定したコンテキストでXPath式を評価します。default <T> TevaluateExpression(String expression, InputSource source, Class<T> type)指定されたsourceのコンテキストでXPath式を評価し、指定されたとおりに結果を返します。現在の名前空間コンテキストを返します。現在の関数リゾルバを返します。現在の変数リゾルバを返します。voidreset()このXPathを元の構成にリセットします。voidsetNamespaceContext(NamespaceContext nsContext)名前空間コンテキストを設定します。voidsetXPathFunctionResolver(XPathFunctionResolver resolver)関数リゾルバを設定します。voidsetXPathVariableResolver(XPathVariableResolver resolver)変数リゾルバを設定します。
- 
メソッドの詳細- 
resetvoid reset()このXPathを元の構成にリセットします。XPathは、XPathFactory.newXPath()で作成された時点の状態にリセットされます。reset()は、既存のXPathの再使用を許可するように設計されているため、新しいXPathの作成に関連するリソースを節約できます。XPathをリセットした場合、同じXPathFunctionResolver、XPathVariableResolverまたはNamespaceContextObject(たとえば、Object.equals(Object obj))を持つことは保証されません。 機能的に同じXPathFunctionResolver、XPathVariableResolverおよびNamespaceContextを持つことは保証されます。
- 
setXPathVariableResolvervoid setXPathVariableResolver(XPathVariableResolver resolver)変数リゾルバを設定します。resolverがnullの場合、NullPointerExceptionがスローされます。- パラメータ:
- resolver- 変数リゾルバ。
- 例外:
- NullPointerException-- resolverが- nullの場合。
 
- 
getXPathVariableResolverXPathVariableResolver getXPathVariableResolver()現在の変数リゾルバを返します。有効な変数リゾルバがない場合、 nullが返されます。- 戻り値:
- 現在の変数リゾルバ。
 
- 
setXPathFunctionResolvervoid setXPathFunctionResolver(XPathFunctionResolver resolver)関数リゾルバを設定します。resolverがnullの場合、NullPointerExceptionがスローされます。- パラメータ:
- resolver- XPath関数リゾルバ。
- 例外:
- NullPointerException-- resolverが- nullの場合。
 
- 
getXPathFunctionResolverXPathFunctionResolver getXPathFunctionResolver()現在の関数リゾルバを返します。有効な関数リゾルバがない場合、 nullが返されます。- 戻り値:
- 現在の関数リゾルバ。
 
- 
setNamespaceContextvoid setNamespaceContext(NamespaceContext nsContext)名前空間コンテキストを設定します。nsContextがnullの場合、NullPointerExceptionがスローされます。- パラメータ:
- nsContext- 使用する名前空間コンテキスト。
- 例外:
- NullPointerException-- nsContextが- nullの場合。
 
- 
getNamespaceContextNamespaceContext getNamespaceContext()現在の名前空間コンテキストを返します。有効な名前空間コンテキストがない場合、 nullが返されます。- 戻り値:
- 現在の名前空間コンテキスト。
 
- 
compileXPathExpression compile(String expression) throws XPathExpressionExceptionあとで評価するため、Xpath式をコンパイルします。expressionにXPathFunctionが含まれている場合は、XPathFunctionResolverで使用可能である必要があります。XPathFunctionがXPathFunctionResolverで解決できない場合、XPathExpressionExceptionがスローされます。expressionに変数が含まれている場合は、コンパイル時に有効なXPathVariableResolverを使用してそれらを解決します。- パラメータ:
- expression- XPath式。
- 戻り値:
- コンパイル済みのXPath式。
- 例外:
- XPathExpressionException-- expressionをコンパイルできない場合。
- NullPointerException-- expressionが- nullの場合。
 
- 
evaluateObject 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の場合。
 
- 
evaluateString 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の場合。
 
- 
evaluateObject 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の場合。
 
- 
evaluateString 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の場合。
 
- 
evaluateExpressiondefault <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
 
- 
evaluateExpressiondefault 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
 
- 
evaluateExpressiondefault <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
 
- 
evaluateExpressiondefault 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
 
 
-