【发布时间】:2012-02-15 06:53:24
【问题描述】:
JDK 1.7.0 XMLUnit 1.3
比较此控件 XML 字符串时:
String controlXml = "" +
"<client>" +
" <name>Hello World</name>" +
"</client>";
使用这个测试 XML 字符串:
String testXml = "" +
"<client>" +
" <name>Hello World</name>" +
"</client>";
XMLUNIT 返回 false,我期待它返回 true(没有差异)。
这是我的用法:
XMLUnit.setIgnoreComments(true);
XMLUnit.setIgnoreWhitespace(true);
Diff diff = new Diff(controlXml,testXml);
boolean result = diff.similar(); //result is false
我还在控制台窗口中收到以下错误:
[Fatal Error] :1:103: The entity "nbsp" was referenced, but not declared.
我不知道在这里做什么。
我查看了它,并获得了一些关于使用 Google 的 EntityResolver 的信息,但这一切都非常令人困惑。
我需要将实体视为纯文本。从逻辑上讲,作为纯文本,它们是相等的。
我尝试切换以下选项:
XMLUnit.setExpandEntityReferences(false); //tried true, false
XMLUnit.setIgnoreDiffBetweenTextAndCDATA(false); //tried true, false
没有任何效果。 请帮忙,我完全迷路了。谢谢!
【问题讨论】:
-
好吧,
&nbsp;除非明确声明,否则 XML 处理器不会识别。在 XML 中只有五个 pre defined 实体;另一方面,HTML 大约有 250 个。
标签: java xml entity entities xmlunit