的SAXParseException;实体" CC"被引用,但没有声明

时间:2014-04-12 03:49:11

标签: xml parsing ascii symbols

参考我使用相同SAXParser代码的thread,我试图解析这个xml文档:

<doc>
    <str name="id">743</str>
    <str name="full_message_t">[ST] Needy has help with S&CC; cost-cutting being implemented http://t.co/Ta7Kgc3f3L</str>
    <str name="source_t">ST</str>
    <str name="news_t">Needy has help with S&CC; cost-cutting being implemented </str>
    <str name="link_t">http://t.co/Ta7Kgc3f3L</str>
    <long name="_version_">1464787947397054464</long>
</doc>

我收到了这个错误

org.xml.sax.SAXParseException; lineNumber: 1667; columnNumber: 62; The entity "CC" was referenced, but not declared.

如果我没错。 &amp; CC是版权符号的ASCII,我假设Parser无法读取它。所以我可以知道这个解决方案是什么? 另外,我假设可能有更多这些符号。是否有某种导入或迂回方法让Parser能够读取所有符号?

1 个答案:

答案 0 :(得分:1)

您的文件格式不正确; XML不允许您使用实体引用,除非它们被声明(在DTD中)。事实上,它实际上并不是一个XML文档。

当你得到错误的XML时,最好的解决方案就是总是找出它产生的地点和时间,并修复产生它的过程,这样它就不会再发生了。

但是,如果您需要修复它,您应该能够找到包含ISO Latin1实体定义的DTD,并在解析之前在文档中(在DOCTYPE声明中)添加对此DTD的引用。