繁体   English   中英

比较特定元素的两个xml文件 - 在java中

[英]comparing two xml files for specific elements — in java

我尽量避免尽可能长时间地问这个问题......但我没有找到任何能完全符合我需求的东西,而且这是我完成这个项目的时候了。

所以这就是我需要的:

我正在制作一个应用程序,基本上将两个xml文档区分开来,然后对其中一个进行微小的更改。 我有一个模板xml,然后另一个xml文件每次都会更改。 我只需要确定模板中的关键元素是否在另一个文件中。 可以忽略任何额外的东西,但应添加缺少的关键元素。

视觉表现:

模板

<root attribute="asd">
    <a />
    <b>
        <c asdf="fdsa" />
    </b>
</root>

其他xml

<root>
    <a d="wer" />
    <b>
        <c />
    <b>
    <d />
</root>

最后结果:

<root attribute="asd">
    <a d="wer" />
    <b>
        <c asdf="fdsa" />
    </b>
    <d />
</root>

我的问题:

有没有办法完成这个最终结果而不费力地经历每个关键元素并确保它们存在? 我已经研究了XPath,这似乎是我迄今为止最好的解决方案,只需检查是否存在必要的部分,然后添加它们,如果它们不存在(我将创建一个新文件,所以写入新的元素并不是非常麻烦)。 但是,由于我需要检查很多东西,我宁愿不这样做。 我还查看了XMLUnit和XOM,但这些似乎更适合比较并告诉我差异(包括添加额外行的地方,我不感兴趣)。

那么,实现两行代码并让它神奇地完成自己的任何好主意呢? Cuz那会很棒:)

你应该能够使用XSLT做到这一点,我想。 不是两行代码 - 根本没有代码,只是XSLT文件中合并启发式的合适定义。

查看此处讨论和解决的类似问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM