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

Java 如何使用JAX-B将两个XML合并为一个?,java,xml,jaxb,Java,Xml,Jaxb,我有两个xml文件(A.xml和B.xml): 数 8. 及 数 15 为了得到结果XML,我应该: <Root> <A> <name>number</name> <value>8</value> </A> <A> <name>number</name> <value>1

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


数
8.


数
15
为了得到结果XML,我应该:

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

数
8.
数
15

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

我不知道为什么要使用JAXB来解决这个问题,它似乎太复杂了

您可以使用一行XQuery来实现这一点

<Root>{doc('A.xml')/*/*, doc('B.xml')/*/*}</Root>
{doc('A.xml')/*/*,doc('B.xml')/*/*}
或者仅使用稍长的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>


这是否回答了您的问题@Tygo,不,对不起,它应该是jaxb方法,作为参数只获取两个xml
<Root>{doc('A.xml')/*/*, doc('B.xml')/*/*}</Root>
<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>