32.4. XPath ビルダー
概要 リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.builder.xml.XPathBuilder
クラスを使用すると、エクスチェンジとは独立して XPath 式を評価することができます。つまり、任意のソースからの XML フラグメントがあれば、XPathBuilder
を使用して XML フラグメントの XPath 式を評価することができます。
式のマッチング リンクのコピーリンクがクリップボードにコピーされました!
matches()
メソッドを使用して、指定された XPath 式に一致する XML ノードが 1 つ以上見つかるかどうかをチェックします。XPathBuilder
を使用した XPath 式のマッチングの基本的な構文は以下のとおりです。
boolean matches = XPathBuilder .xpath("Expression") .matches(CamelContext, "XMLString");
boolean matches = XPathBuilder
.xpath("Expression")
.matches(CamelContext, "XMLString");
ここで、指定された式である Expression が XML フラグメントである XMLString に対して評価され、式に一致するノードが少なくとも 1 つ見つかった場合に結果は true になります。たとえば、以下の例では XPath 式が xyz
属性に一致するものを見つけたため、true
が返されます。
boolean matches = XPathBuilder .xpath("/foo/bar/@xyz") .matches(getContext(), "<foo><bar xyz='cheese'/></foo>"));
boolean matches = XPathBuilder
.xpath("/foo/bar/@xyz")
.matches(getContext(), "<foo><bar xyz='cheese'/></foo>"));
式の評価 リンクのコピーリンクがクリップボードにコピーされました!
evaluate()
メソッドを使用して、指定された XPath 式と一致する最初のノードの内容を返します。XPathBuilder
を使用して XPath 式を評価するための基本的な構文は以下のとおりです。
String nodeValue = XPathBuilder .xpath("Expression") .evaluate(CamelContext, "XMLString");
String nodeValue = XPathBuilder
.xpath("Expression")
.evaluate(CamelContext, "XMLString");
また、evaluate()
に第 2 引数として必要な型を渡すことで、結果の型を指定することもできます。