gpt4 book ai didi

java - 如何获取camel中的xml节点数

转载 作者:行者123 更新时间:2023-12-02 09:29:18 26 4
gpt4 key购买 nike

我想获取文件中存在的带有camel交换或camel路由中特定标签的xml节点的数量。

我的xml标签是这样的:

<parent>
<child>
<data>A</data>
</child>
<child>
<data>B</data>
</child>
<child>
<data>C</data>
<child>
<data>C1</data>
</child>
<child>
<data>C2</data>
</child>
</child>
</parent>

我想数<child>标签,它应该为此返回 5。

目前,我正在使用 Exchange 获取大小,但它给出的输出为 3。

exchange.getIn().getBody(XmlTreesType.class).getParentTree().getChildNode().size(); 

最佳答案

这很大程度上取决于您的实际用例。

要提取计数,您可以使用 XPath language它允许您轻松地从 XML 中提取信息。

提取所有 <child> 的计数<parent> 中的节点您可以使用以下内容:

count(/parent//child)

XPath 表达式。

要提取该值并将其存储在 header 变量中,如下所示:

.from()
.setHeader("childCountHeader", xpath("count(/parent//child)", Integer.class));

camel Java DSL 中的另一个典型用例如下,以便根据计数直接进行路由:

from()
.choice().xpath("count(/parent//child)>5")
//do something
.otherwise()
//do something else
.end();

如果您想在 vanilla java 中使用 XPath,就像在 Camel 处理器中一样。您可以按照 this answer 中的描述构建 XPath 处理器。 .

关于java - 如何获取camel中的xml节点数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58113671/

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