Как использовать XMLUnit для сравнения 2 или более узлов (с одинаковыми именами) в 2 разных файлах?
У меня есть 2 XML-файла, которые выглядят так:
<SearchResults>
<result type="header"> ...ignore this.... </result>
<result type="secondheader">...ignore this....</result>
<result>....data1....</result>
<result>....data2....</result>
<result>....data3....</result>
<result type="footer">...ignore this....</result>
</SearchResults>
А вот мой метод, который я использую для сравнения до сих пор. Проблема в том, что я не хочу сравнивать части xml, которые имеют тег результата, с любым видом атрибута на них. Как я могу это сделать?
public void compareXMLEqualityToLastTest() throws Exception {
System.out.println("Checking differences.");
File firstFile = new File("C:\\Eclipse\\workspace\\Tests\\log\\" +
"Test_2.xml");
String file1sub = readXMLFromFile(firstFile);
File secondFile= new File("C:\\Eclipse\\workspace\\Tests\\log\\" +
"Test_1.xml");
String file2sub = readXMLFromFile(secondFile);
assertXMLNotEqual("files are equal", file1sub, file2sub );
assertXMLEqual("files are not equal", file1sub, file2sub );
}
Я нашел смутное предложение использовать ElementQualifier на странице 5 руководства по XMLUnit, но пока не понимаю. Я не знаю, как сказать, какие узлы сравнивать.
Diff myDiff = new Diff(file1sub, file2sub);
myDiff.overrideElementQualifier(new ElementNameAndTextQualifier());
assertXMLEqual("But they are equal when an ElementQualifier controls " +
"which test element is compared with each control element", myDiff, true);
Должен ли я следовать этому маршруту и добавить этот класс в свой проект?
org.apache.wink.test.diff.DiffWithAttributeQualifier
Мне пришла в голову мысль поместить узлы в NodeList, а затем использовать org.custommonkey.xmlunit.compareNodeList , но это похоже на хак Есть ли лучший способ, чем это?