我正在编写一个屏幕抓取应用程序,它可以读取各种页面并提取数据。我正在使用SAXParserFactory
go get a SAXParser
,这反过来又让我获得了XMLReader
. 我已经像这样配置了工厂:
spf = SAXParserFactory.newInstance();
spf.setValidating(false);
spf.setFeature("http://xml.org/sax/features/validation", false);
spf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
spf.setFeature("http://xml.org/sax/features/use-entity-resolver2", false);
但是,每当我解析包含 
实体的文档时,我都会得到一个
SEVERE: null
org.xml.sax.SAXParseException: The
entity "nbsp" was referenced, butnot declared.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
我可以理解它找不到实体,因为我告诉工厂不要读取 DTD,但是如何禁用实体检查呢?
编辑:这是一个 Android 应用程序,这就是为什么我不愿意使用不在标准环境中的 API/库。