我将一个XML文件拆分为多个XML文件,因此我需要一个xmlStreamReader。使用XmlStreamReader时,它将引发“达到异常限制”。 XML安全管理器为读取文件设置了一些限制。
我已经尝试将属性FEATURE_SECURE_PROCESSING设置为false。但是XmlInputFactory无法识别]
XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory();
xmlInputFactory.setProperty(XMLConstants.FEATURE_SECURE_PROCESSING, false);
我希望XML流分析器不受读取大文件的限制
我已经找到答案,使用支持处理程序的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);