我想使用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,但它显示了很多结果,但我只想提取具体的更改。请给你的段落。
答案 0 :(得分:1)
如果您正在进行与订单无关的比较,那么ElementQualifier
会有所帮助:
http://xmlunit.sourceforge.net/userguide/html/ar01s03.html
在某些情况下,两段XML中的元素顺序可能并不重要。如果是这样,DifferenceEngine需要帮助确定要比较的元素。这是ElementQualifier的工作(参见第3.4节“ElementQualifier”)。
具体来说,ElementNameAndAttributeQualifier
似乎符合您的要求:
只有具有相同名称的元素 - 和名称空间URI(如果存在) - 以及ElementNameAndAttributeQualifier的构造函数中给出的所有属性的相同值才符合条件。