91.4. 使用 XQuery 作为转换
我们可以在路由中使用 transform or setBody 来对消息进行转换,如下所示:
from("direct:start"). transform().xquery("/people/person");
请注意,xquery 将默认使用 DOMResult,因此如果我们希望获取 person 节点的值,则需要使用 text()
告知 XQuery 使用 String 作为结果类型,如下所示:
from("direct:start"). transform().xquery("/people/person/text()", String.class);
如果要使用类似标头的 Camel 变量,则必须在 XQuery 表达式中显式声明它们。
<transform> <xquery> declare variable $in.headers.foo external; element item {$in.headers.foo} </xquery> </transform>