Java 如何使用JAX-B将两个XML合并为一个?
我有两个xml文件(A.xml和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
数
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>