gpt4 book ai didi

java - 使用camel,如何使用 header 的值来定义 XPath 表达式?

转载 作者:行者123 更新时间:2023-11-30 04:26:28 24 4
gpt4 key购买 nike

我有一个 header ,其中包含 XPath 定义:

myXPath = "/bookshop/author/books/1|/bookshop/author/books/2"

然后我想在 Xpath 表达式中使用它来设置另一个 header ,如下所示:

<setHeader headerName="authorBooks">
<xpath resultType="org.w3c.dom.NodeList">${in.header.myXPath}</xpath>
</setHeader>

阅读docs看来您可以使用 header 值作为表达式的一部分,但不能定义整个内容?我尝试了这个,但没有成功:

<xpath resultType="org.w3c.dom.NodeList">in:header('myXPath')</xpath>

有人知道这样做的方法吗?我发现这个错误似乎可以满足我的要求,但预计要到 3.0 才会修复: https://issues.apache.org/jira/browse/CAMEL-3697

最佳答案

与 Camel 几乎总是一样,当 DSL 对于您的情况有限时,您可以切换到在普通 Java 处理器/bean 中执行此特定部分。

您可以使用XPathBuilder执行您的表达式并手动检索 header 。

伪代码:

 String result = XPathBuilder.xpath(exchange.getIn().getHeader("myXpath",String.class)).evaluate(context, exchange.getIn().getBody());

关于java - 使用camel,如何使用 header 的值来定义 XPath 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com