如何使用 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>
我有两个 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>