gpt4 book ai didi

xpath - 带有节点列表的 Apache Camel XPath

转载 作者:行者123 更新时间:2023-12-03 16:54:30 26 4
gpt4 key购买 nike

我想连接 Apache Camel XPath 结果中的所有值并将其添加到消息上下文中。标题应如下所示:"|value1|value2|valueN|"我的路线看起来像:

from("direct:test")
.setHeader("key").xpath("//Identifier", List.class)
.to("mock:result")
这样做的最佳方法是什么?有没有办法实现自己的结果类型?

最佳答案

正如威廉所说,您必须编写自己的处理器。

对于这样的小事,我最喜欢的方法是在包含返回匿名处理器的路由定义的类中声明一个函数,如下所示:

private Processor setHeaderWithIdentifiers() {
return exchange -> {
List<String> identifiers = new ArrayList<>();
NodeList nodes = XPathBuilder.xpath("//Identifier").evaluate(exchange, NodeList.class);

for (int i = 0; i < nodes.getLength(); i++) {
identifiers.add(nodes.item(i).getNodeValue());
}

// StringUtils from Apache Commons 3
String idAsString = StringUtils.join(identifiers, "|");
exchange.getIn().setHeader("key", idAsString);
};
}

这样,您不需要找到任何复杂的 XPath 函数,并且只要处理器代码仍然很短,代码就可以保持清晰易懂。

关于xpath - 带有节点列表的 Apache Camel XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20529197/

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