Jaxb Marshaller.Generate output.xml文件,包含input.xml文件的相同数据,附加标记指示记录处理结果

时间:2017-12-28 09:36:06

标签: jaxb

我正在使用我的Pojo对象使用Unmarshall Jaxb读取xml文件(Input.xml)。

使用Unmarshaller读取输入文件示例。

    File file = new File(".\\src\\test\\files\\Input.xml");
    JAXBContext jaxbContext = JAXBContext.newInstance(MerchantPayments.class);
    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
    MerchantPayments MpObj = (MerchantPayments) jaxbUnmarshaller.unmarshal(file);
    // Process MpObj..

我现在需要做的是生成一个Output.xml文件,其中包含与Input.xml文件相同的数据,但添加一个名为<result>的新标记,指示记录是否已成功加载。< / p>

使用包含input.xml的相同数据并添加新标记的Jaxb Marshal功能生成output.xml文件的最佳方法是什么?

我需要生成output.xml文件的新Pojo才能添加新标记,或者还有其他方法使用Jaxb Marshaller?

在Input.xml文件和output.xml文件下面,我需要使用附加标记<result>生成

Input.xml中

<?xml version='1.0' encoding='UTF-8'?>
    <payments>
        <payment>
            <account>123</account>
            <order>110000000001</order>
            <amount>19.0</amount>
        </payment>
        <payment>
            <account>1234</account>
            <order>110000000002</order>
            <amount>20.0</amount>
        </payment>
    </payments>

Output.xml,包含新标记<result>

<?xml version='1.0' encoding='UTF-8'?>
    <payments>
        <payment>
            <account>123</account>
            <order>110000000001</order>
            <amount>19.0</amount>
            **<result>Record loaded correctly</result>**
        </payment>
        <payment>
            <account>1234</account>
            <order>110000000002</order>
            <amount>20.0</amount>
            **<result>Record Failed</result>**
        </payment>
    </payments>

提前致谢。

1 个答案:

答案 0 :(得分:0)

要在Output.xml中添加新标记,首先,您必须在MerchantPayments类中添加以下属性对应的setter / getter方法。

@XmlElement(name = "result")
private String result;

解组后,您将获得 MpObj ,您必须将&#34;记录失败&#34; 文本设置为结果字段。现在,您可以编组MpObj并在Output.xml中获得所需的输出。