搜索

32.4. XPath Builder

download PDF

概述

org.apache.camel.builder.xml.XPathBuilder 类允许您独立评估 XPath 表达式。也就是说,如果您拥有来自任何源的 XML 片段,您可以使用 XPathBuilder 来评估 XML 片段中的 XPath 表达式。

匹配表达式

使用 matches() 方法检查一个或多个 XML 节点是否可以找到与给定 XPath 表达式匹配的 XML 节点。使用 XPathBuilder 匹配 XPath 表达式的基本语法如下:

boolean matches = XPathBuilder
                    .xpath("Expression")
                    .matches(CamelContext, "XMLString");

如果至少有一个节点与表达式匹配,则给定表达式、表达式 会根据 XML 片段、XMLString 和结果为 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");

您也可以通过传递所需的类型作为第二个参数来指定结果类型,以评估() targetNamespaces-InventoryServicefor 示例:

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);
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.