375.10. Exchange なしで XPathBuilder を使用する

Camel 2.3 の時点で利用可能

Exchange を必要とせずに org.apache.camel.builder.XPathBuilder を使用できるようになりました。これは、カスタム xpath 評価を行うためのヘルパーとして使用する場合に便利です。

XPathBuilder 内の可動部分の多くは Camel Type Converter へのアクセスを必要とするため、CamelContext を渡す必要があり、これが CamelContext が必要となる理由です。

たとえば、次のようなことができます。

boolean matches = XPathBuilder.xpath("/foo/bar/@xyz").matches(context, "<foo><bar xyz='cheese'/></foo>"));

これは、指定された述語に一致します。

たとえば、次の 3 つの例に示すように評価することもできます。

String name = XPathBuilder.xpath("foo/bar").evaluate(context, "<foo><bar>cheese</bar></foo>", String.class);
Integer number = XPathBuilder.xpath("foo/bar").evaluate(context, "<foo><bar>123</bar></foo>", Integer.class);
Boolean bool = XPathBuilder.xpath("foo/bar").evaluate(context, "<foo><bar>true</bar></foo>", Boolean.class);

String の結果で評価することは一般的な要件であるため、もう少し簡単に行うことができます。

String name = XPathBuilder.xpath("foo/bar").evaluate(context, "<foo><bar>cheese</bar></foo>");