gpt4 book ai didi

java - 如何使用 apache Camel Bindy 将两个 xml 标签合并为一个 xml

转载 作者:行者123 更新时间:2023-11-30 05:20:59 25 4
gpt4 key购买 nike

我的问题是我的平面文件中有两个不同的位置,带有“|”分离的字符串。位置2和3参见说明。我想生成 xml,并将两个描述附加到一个描述中,并返回一个包含两个描述的 DESC 标记。

输入源:

UN|2.1  |AEROSOLS

预期输出:

<TEST>
<STATE>UN</STATE>
<DESC>2.1 AEROSOLS</DESC>
</TEST>

我得到的输出:

    <TEST>
<STATE>UN</STATE>
<DESC_ONE>2.1 AEROSOLS</DESC_ONE>
<DESC_TWO>AEROSOLS<DESC_TWO>
</TEST>

TEST.java

@Data
public class TEST {


@DataField(pos = 1, name = "STATE", required = true)
private String STATE;

@DataField(pos = 2, name = "DESC",required = true)
private String DESC_ONE;

@DataField(pos = 3, name = "DESC",required = true)
private String DESC_TWO;


}

Converter.java

                            from(SOURCE_INPUT_PATH).
log("Received input from file and body is ${body}").
unmarshal(bindyBeanConfig.bindyCsvDataFormat3280()).
process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {

TEST test = exchange.getIn().getBody(TEST.class);
DESC_ONE descOne = test.getTEST();
DESC_TWO descTwo = descOne.getDESC_ONE();

String description = descOne.getDESC_ONE() + descTwo.getDESC_TWO();

descOne.set_DESCONE(description);

exchange.getIn().setBody(descTwo);

}
}).

最佳答案

我不太了解 apache-camel ,尽管如此,您可以在 TEST 中添加另一个 DataField ,比如 DESC ,并且您可以在调用 exchange.getIn().setBody 之前在 Converter.java 中设置 DESC 而不是 DESC_ONE (descTwo); 您应该将 DESC_ONEDESC_TWO 设置为 null

关于java - 如何使用 apache Camel Bindy 将两个 xml 标签合并为一个 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59572635/

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