【发布时间】:2011-06-15 23:27:49
【问题描述】:
我已经尽量避免问这个问题......但我还没有找到任何能完全满足我需求的东西,现在是我完成这个项目的时候了。
这就是我需要的:
我正在制作一个应用程序,它基本上可以区分两个 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,但它们似乎更适合比较并告诉我差异(包括添加了额外行的位置,我对此不感兴趣)。
那么,有什么好主意来实现两行代码并让它神奇地完成吗?因为那会很棒:)
【问题讨论】: