org.apache.commons.jxpathパッケージは、XPathと呼ばれる表現言語のインタプリタを規定します。JXPathは、XPath表現を、全ての種類のオブジェクト(JavaBeans、Maps、サーブレットコンテキスト、DOM、あるいはそれらの組み合わせ、など)に適用します。
このような例を考えてみて下さい:
Address address = (Address)JXPathContext.newContext(vendor).
getValue("locations[address/zipCode='90210']/address");
このXPath表現は、以下のJavaコードと同等です:
Address address = null;
Collection locations = vendor.getLocations();
Iterator it = locations.iterator();
while (it.hasNext()){
Location location = (Location)it.next();
String zipCode = location.getAddress().getZipCode();
if (zipCode.equals("90210")){
address = location.getAddress();
break;
}
}
XPathはW3Cにより標準化され、XSLTとXPointerの両方で使われます。
XPathについてもっと情報が欲しいとお考えでしたら、初めに、優れたXPathチュートリアルであるW3Schoolsから始めるのが良いでしょう。
W3CによるXPathの公式な定義に関しては、XML Path Language (XPath) Version 1.0で入手可能です。
JXPathを利用する主なアプリケーションは、スクリプト言語(JSPや似たようなテンプレート/スクリプトベースの技術)です。
しかし、XML基調のAPIを好むプログラマーは、JXPathを他の表現言語の代わりとして考えても良いでしょう。
JXPathは、JavaオブジェクトとXMLの両方を扱う人々や、それらのモデル図の考察を頻繁に必要とする人々の為に必要不可欠なツールです。
JXPathに関するドキュメントには、現在、以下のものがあります: