gpt4 book ai didi

java - 有意义的 XML 比较

转载 作者:行者123 更新时间:2023-12-01 11:18:56 24 4
gpt4 key购买 nike

我正在尝试实现有意义的 XML 比较。我想比较两个不同的 XML 以了解它们是否“有意义”相同。

示例 XML 1:

    <?xml version="1.0" encoding="UTF-8"?>
<al:moAttribute>
<al:name>impiId</al:name>
<al:value>616731935012345678</al:value>
</al:moAttribute>

<al:moAttribute>
<al:name>impuId</al:name>
<al:value>tel:+16167319350</al:value>
</al:moAttribute>

XML 2:

    <?xml version="1.0" encoding="UTF-8"?>
<al:moAttribute>
<al:name>impuId</al:name>
<al:value>tel:+16167319350</al:value>
</al:moAttribute>
<al:moAttribute>
<al:name>impiId</al:name>
<al:value>616731935012345678</al:value>
</al:moAttribute>

在此示例中,两个 XML “有意义”相同,只是元素顺序不同。我想比较一下它们是否几乎相等。

我尝试了这个解决方案:

Best way to compare 2 XML documents in Java

我尝试过:

XMLUnit.setIgnoreWhitespace(true);
diff.identical (...);
diff.similar (...);

但是如果 XML 的顺序不同,XML 比较将返回 false。

请问有什么建议吗?

最佳答案

任何 XML 级别的工具都会假定元素的顺序很重要。如果您知道在您的特定词汇表中,元素的顺序并不重要,那么您需要一个能够帮助您理解词汇表的工具。因此,最好的选择是编写一个规范化转换(通常在 XSLT 中),从文档中删除不相关的差异(例如,通过对某个合适的键对元素进行排序),以便在使用标准 XML 工具(可能在 XML 之后)进行比较时,它们比较相等规范化)。

关于java - 有意义的 XML 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31487551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com