376.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>");