76.4. 使用 XQuery 作为转换


我们可以在路由中使用 transform or setBody 来对消息进行转换,如下所示:

from("direct:start").
   transform().xquery("/people/person");
Copy to Clipboard Toggle word wrap

请注意,xquery 将默认使用 DOMResult,因此如果我们希望获取 person 节点的值,则需要使用 text() 告知 XQuery 使用 String 作为结果类型,如下所示:

from("direct:start").
   transform().xquery("/people/person/text()", String.class);
Copy to Clipboard Toggle word wrap

如果要使用类似标头的 Camel 变量,则必须在 XQuery 表达式中显式声明它们。

<transform>
    <xquery>
        declare variable $in.headers.foo external;
        element item {$in.headers.foo}
    </xquery>
</transform>
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat