英文:
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)?
英文:
I have two xml files (A.xml and B.xml):
<Root>
<A>
<name>number</name>
<value>8</value>
</A>
</Root>
and
<Root>
<A>
<name>number</name>
<value>15</value>
</A>
</Root>
And I should to get the result XML:
<Root>
<A>
<name>number</name>
<value>8</value>
</A>
<A>
<name>number</name>
<value>15</value>
</A>
</Root>
I have my own solution is to get the object from XML, put it into a list and then get XML from this list. Maybe there is a better solution (using JAX-B)?
答案1
得分: 3
以下是翻译好的内容:
我不确定为什么您想要在这种情况下使用JAXB,这似乎过于复杂。
您可以使用一行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>
英文:
I'm not sure why you would want to use JAXB for this, it seems over-complex.
You can do this with a one-line XQuery
<Root>{doc('A.xml')/*/*, doc('B.xml')/*/*}</Root>
Or with an only slightly longer 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>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论