【问题标题】:merge multiple files with JAXB使用 JAXB 合并多个文件
【发布时间】:2018-09-26 05:50:24
【问题描述】:

这是我第一次使用 stackoverflow,我的英语说得不太好,所以请客气。

我在这样的附加模式下使用 Jaxb

for (Document330 document : documents){
  JAXBContext jContext = JAXBContext.newInstance(Document330Xml.class);
    Marshaller m = jContext.createMarshaller();
    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
    m.marshal(document, fos);
}

我有一个这样的输出文件:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DOCUMENT>
    <MAILING>
        <REF>M584</REF>
        <LIBELLE>Mail Test 1</LIBELLE>
    </MAILING>
</DOCUMENT>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DOCUMENT>
    <MAILING>
        <REF>M585</REF>
        <LIBELLE>Mail Test 2</LIBELLE>
    </MAILING>
</DOCUMENT>

但我想要这样的东西:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DOCUMENTS>
    <DOCUMENT>
        <MAILING>
            <REF>M584</REF>
            <LIBELLE>Mail Test 1</LIBELLE>
        </MAILING>
    </DOCUMENT>
    <DOCUMENT>
        <MAILING>
            <REF>M585</REF>
            <LIBELLE>Mail Test 2</LIBELLE>
        </MAILING>
    </DOCUMENT>
</DOCUMENTS>

但有可能我有很多 XML。所以我不认为 Unmarshaller 是最好的解决方案

感谢阅读

【问题讨论】:

  • 您只需将多个Strings 写入同一个输出流。您尝试将这 2 个 DOCUMENTs 包装在 DOCUMENTS 标记中是什么?

标签: java xml merge jaxb


【解决方案1】:

如果我提醒正确,您需要创建一个可以编组的Documents330Xml 类(您可以查看您的Document330Xml 类以供参考)。此类需要Document330Xml 的列表作为字段。

如果您随后编组Documents330Xml 类,您应该获得所需的 XML。

【讨论】:

    猜你喜欢
    • 2020-09-06
    • 2017-07-26
    • 2013-08-02
    • 2013-02-11
    • 2011-04-06
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多