【问题标题】:comparing two xml files for specific elements -- in java比较两个 xml 文件的特定元素——在 java 中
【发布时间】: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,但它们似乎更适合比较并告诉我差异(包括添加了额外行的位置,我对此不感兴趣)。

那么,有什么好主意来实现两行代码并让它神奇地完成吗?因为那会很棒:)

【问题讨论】:

    标签: java xml xpath


    【解决方案1】:

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

    查看讨论和解决的类似问题here

    【讨论】:

    • 我和你在一起。我还添加了我亲自回答的相同类型的question
    • @empo - 谢谢。我明白了,关于 SO 的例子已经很多了。
    • 是的,有人点击“这很容易”按钮,因为,嗯……显而易见的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多