我需要使用XmlUnit测试像<div> </div>
这样的XHTML代码。 Diff构造函数告诉我:
org.xml.sax.SAXParseException:引用了实体“nbsp”,但是 没有宣布。
我知道 nbsp 实体未在XML中定义,但HTML代码不是我的,因此我无法用#160 替换它(这将是明显的解决方案否则)。
我不想通过添加<!DOCTYPE html [ <!ENTITY nbsp " "> ]>
来修改HTML代码,我更愿意保留代码而不做任何更改。
还有另一种解决这个问题的方法吗?我知道XmlUnit中有一个HTMLDocumentBuilder
类,但我无法找到好的文档或示例。
答案 0 :(得分:0)
您可以使用引用MathML DTD:
的DOCTYPE声明<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 3.0//EN"
"http://www.w3.org/Math/DTD/mathml3/mathml3.dtd">
或相同的本地副本。
答案 1 :(得分:0)
您可以启用功能“ http://apache.org/xml/features/continue-after-fatal-error”以在实体未知的情况下不引发异常。不过,这仍然会发出警告:
documentBuilderFactory.setFeature(
"http://apache.org/xml/features/continue-after-fatal-error",
true);
Évoilá!