如何使用 JAX-B 将两个 XML 合并为一个?

How to merge two XML into one using JAX-B?

我有两个 xml 文件(A.xml 和 B.xml):

<Root>
    <A>
        <name>number</name>
        <value>8</value>
    </A>
</Root>

<Root>
    <A>
        <name>number</name>
        <value>15</value>
    </A>
</Root>

我应该得到结果 XML:

<Root>
    <A>
        <name>number</name>
        <value>8</value>
    </A>
    <A>
        <name>number</name>
        <value>15</value>
    </A>
</Root>

我有自己的解决方案,就是从XML中获取对象,将其放入列表中,然后从该列表中获取XML。也许有更好的解决方案(使用 JAX-B)?

我不确定您为什么要为此使用 JAXB,似乎 over-complex。

您可以使用 one-line XQuery

<Root>{doc('A.xml')/*/*, doc('B.xml')/*/*}</Root>

或者使用稍微长一点的 XSLT:

<Root xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:copy-of select="document('A.xml')/*/* | document('B.xml')/*/*"/>
</Root>