如何告诉XML解析器忽略被引用但未声明的实体?
我得到这样的例外:
org.xml.sax.SAXParseException:The 实体“alpha”被引用,但没有 声明。
我想要的是解析器处理字符串“& alpha;”作为一个简单的字符串,而不是一个字符实体。
另外,我有很多这些实体,所以我不能告诉解析器单独忽略它们。
答案 0 :(得分:5)
您可以编写一个脚本(例如,使用sed或perl),使用regexp替换来预处理输入文档并转义&符号,但XML识别的字符实体的开头除外(即five predefined ones ,以及你宣布的任何事情。)
E.g。该脚本会在&
等字符串的开头用&
替换α
,产生α
。但它会留下<
和 
。
您要问的问题归结为“我如何获得旨在解析XML的工具(即格式良好的XML)来处理非XML(即格式不正确的XML)?”答案几乎总是首先使用非XML工具来修复输入并使其格式良好。