Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何配置Java的SaxParserFactory禁用实体检查? 大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在编写一个屏幕抓取应用程序,该应用程序可以读取各种页面提取数据.我正在使用SAXParserFactory来获得一个SAXParser,这反过来又使我得到了XMLReader.我已经像这样配置了Factory:

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);

但是,每当我解析包含& nbsp实体的文档时,我都会得到一个

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 /库的原因.

最佳答案
SAX似乎不具备此功能,但StAX API可以.有关设置方法,请参见this previous question/answer.

如果您是手工编写XML处理器,那么StAX API的处理要比SAX API容易得多,因此您在这两个方面都能取胜.

大佬总结

以上是大佬教程为你收集整理的如何配置Java的SaxParserFactory禁用实体检查? 全部内容,希望文章能够帮你解决如何配置Java的SaxParserFactory禁用实体检查? 所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。