Отключить функцию безопасной обработки в XMLInputFactory - PullRequest
0 голосов
/ 07 ноября 2019

Я собираюсь разбить XML-файл на несколько XML-файлов, поэтому мне нужен xmlStreamReader. При использовании XmlStreamReader он генерирует Exception Limit Reach. Менеджер безопасности XML установил некоторые ограничения для чтения файлов.

Я уже пытался настроить свойство FEATURE_SECURE_PROCESSING false. Но это не распознается XmlInputFactory

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

Я ожидаю, что XML Streaming Parser без ограничения чтения больших файлов

1 Ответ

0 голосов
/ 08 ноября 2019

Я нашел ответ, используйте Saxparser, который поддерживает обработчик для анализа XML-данных, также FEATURE_SECURE_PROCESSING можно отключить в SaxParser.

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

...