1

我想使用 XMLUnit 比较两个 XML 文件(我不想重新发明已经存在的东西)。

XML 1:

<?xml version="1.0"?>
<Product>
    <Property>
        <Container value="1">Test 01</Container>
        <Container value="3">Test 02</Container>
        <Container value="5">Test 03</Container>
    </Property>
</Product>

XML2:

<?xml version="1.0"?>
<Product>
    <Property>
        <Container value="3">Test 01</Container>
        <Container value="7">Test 02</Container>
        <Container value="1">Test 03</Container>
        <Container value="5">Test 04</Container>
    </Property>
</Product>

我只想在节点与属性匹配时才比较元素。此外,如果位置不同,那么它应该是相似的。

我已经尝试过DetailedDiff,但它显示了很多结果,但我只想提取特定的更改。请给出您的建议。

4

1 回答 1

1

如果您在进行与订单无关的比较,那么ElementQualifier会有所帮助:

http://xmlunit.sourceforge.net/userguide/html/ar01s03.html

在某些情况下,两段 XML 中元素的顺序可能并不重要。如果这是真的,DifferenceEngine 需要帮助来确定要比较哪些元素。这是 ElementQualifier 的工作(参见第 3.4 节,“ElementQualifier”)。

具体来说,ElementNameAndAttributeQualifier似乎符合您的要求:

只有具有相同名称的元素 - 和命名空间 URI(如果存在) - 以及 ElementNameAndAttributeQualifier 的构造函数中给定的所有属性的相同值才有资格。

于 2014-02-03T12:38:42.453 回答