在XMLInputFactory中禁用功能安全处理

问题描述 投票:0回答:1

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

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

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

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

java xml-parsing
1个回答
0
投票

我已经找到答案,使用支持处理程序的Saxparser来解析XML数据,也可以在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);

© www.soinside.com 2019 - 2024. All rights reserved.