如何告诉XML解析器忽略丢失的实体

时间:2011-06-28 18:38:02

标签: xml sax entities

如何告诉XML解析器忽略被引用但未声明的实体?

我得到这样的例外:

  

org.xml.sax.SAXParseException:The   实体“alpha”被引用,但没有   声明。

我想要的是解析器处理字符串“& alpha;”作为一个简单的字符串,而不是一个字符实体。

另外,我有很多这些实体,所以我不能告诉解析器单独忽略它们。

1 个答案:

答案 0 :(得分:5)

您可以编写一个脚本(例如,使用sed或perl),使用regexp替换来预处理输入文档并转义&符号,但XML识别的字符实体的开头除外(即five predefined ones ,以及你宣布的任何事情。)

E.g。该脚本会在&等字符串的开头用&替换α,产生α。但它会留下< 

您要问的问题归结为“我如何获得旨在解析XML的工具(即格式良好的XML)来处理非XML(即格式不正确的XML)?”答案几乎总是首先使用非XML工具来修复输入并使其格式良好。