32.4. XPath Builder
概述
org.apache.camel.builder.xml.XPathBuilder 类可让您独立于交换评估 XPath 表达式。也就是说,如果您有来自任何源的 XML 片段,您可以使用 XPathBuilder 来评估 XML 片段上的 XPath 表达式。
匹配表达式
使用 match ()方法检查能否找到与给定 XPath 表达式匹配 的一个或多个 XML 节点。使用 XPathBuilder 匹配 XPath 表达式的基本语法如下:
boolean matches = XPathBuilder
.xpath("Expression")
.matches(CamelContext, "XMLString");
如果至少找到匹配表达式的节点,则根据 XML 片段、XML 字符串 和结果评估给定表达式表达式表达式,则结果为 true。例如,以下示例返回 true,因为 XPath 表达式在 xyz 属性中找到匹配项。
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");
您还可以传递所需类型作为第二个参数来指定结果类型,以评估()Memcached -PROGRESS,例如:
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);