我已经用谷歌搜索过这个问题,我知道还有 10 个其他类似的问题,但我似乎无法让它发挥作用..
我想比较 2 个 xml 字符串,只得到拼写错误或类似内容的差异,而忽略子顺序。这是我的代码自动取款机:
public void xmlCompare() {
try {
// First XML-read
InputStream is = new FileInputStream("xmlTestCorrect.xml");
String xmlText = IOUtils.toString(is);
// Second XML-read
InputStream is2 = new FileInputStream("xmlTestFalse.xml");
String xmlText2 = IOUtils.toString(is2);
Diff diff = DiffBuilder.compare(Input.fromString(xmlText)).withTest(Input.fromString(xmlText2))
.withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byName)).ignoreWhitespace()
.ignoreComments().checkForSimilar().build();
System.out.println(diff.hasDifferences());
System.out.println(diff.getDifferences());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
而我的结果....
Expected text value 'commons-io' but was 'org.json'
Expected text value 'commons-io' but was 'json'
等等。我刚刚在 xmlTestFalse.xml 文件中切换了一些依赖项(还添加了一些成功显示的拼写错误)。并且仍然注意到切换的依赖关系。为什么??我尝试做这样的事情,因为我有相同版本的 xmlunit:像这样