2013-05-10 30 views
1

我需要使用XmlUnit测试像<div>&nbsp;</div>这样的XHTML代码。 Diff构造函数告诉我:XmlUnit:实体“nbsp”被引用,但未声明

org.xml.sax.SAXParseException:引用实体“nbsp”,但未声明 。

我知道NBSP实体并没有在XML定义,但HTML代码是不是我的,所以我不能#160替换它(这将是显而易见的,否则溶液)。

我不想通过添加<!DOCTYPE html [ <!ENTITY nbsp "&#160;"> ]>来修改HTML代码,我宁愿不改变地保留代码。

是否有解决此问题的另一种方法?我知道XmlUnit中有一个HTMLDocumentBuilder类,但我无法找到很好的文档或示例。

回答

0

您可以使用DOCTYPE声明,指MathML DTD

<!DOCTYPE math 
    PUBLIC "-//W3C//DTD MathML 3.0//EN" 
      "http://www.w3.org/Math/DTD/mathml3/mathml3.dtd"> 

或相同的本地副本。

+1

如果我想添加DTD,直接添加XHTML DTD不是更好吗? 我相信这可能是一个解决方案,但我宁愿不加改变地保留源代码XHTML代码(因为您的解决方案会引发一些新问题)。 – Richard 2013-05-10 17:01:13

相关问题