在XMLInputFactory中禁用功能安全处理

时间:2019-11-07 14:08:56

标签: java xml-parsing

我将一个XML文件拆分为多个XML文件,因此我需要一个xmlStreamReader。使用XmlStreamReader时,它将引发“达到异常限制”。 XML安全管理器为读取文件设置了一些限制。

我已经尝试将属性FEATURE_SECURE_PROCESSING设置为false。但是XmlInputFactory无法识别它

XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory();
xmlInputFactory.setProperty(XMLConstants.FEATURE_SECURE_PROCESSING, false);

我希望XML流分析器不受读取大文件的限制

1 个答案:

答案 0 :(得分:0)

我找到了答案,使用支持处理器解析XML数据的Saxparser,也可以在SaxParser中禁用FEATURE_SECURE_PROCESSING。

class ParserHandler extends org.xml.sax.helpers.DefaultHandler{
    @Override
    public void startDocument() throws SAXException {
    // your operation
    }

    //other methods 
}
ParserHandler handler = new ParserHandler();
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, false);
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(file, handler);