Проверка ОГРОМНОГО XML-файла

Я использую colname (train) = paste («A», colname (train)), и он оказывается с той же проблемой, что и ваш.

Наконец, я выяснил, что randomForest более скупо, чем rpart , он не может распознать colname с пробелом, запятой или другой определенной пунктуацией.

Функция

paste добавит «A» и «» в качестве разделителя с каждым colname. поэтому нам нужно отменить это пространство и использовать это предложение:

colname(train) = paste("A", colname(train), sep = "")

это добавит строку без пробела.

28
задан Community 23 May 2017 в 10:30
поделиться

4 ответа

Вместо того, чтобы использовать DOMParser, используйте SAXParser. Это читает из входного потока или читателя, таким образом, можно сохранить XML на диске вместо того, чтобы загрузить все это в память.

SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);

SAXParser parser = factory.newSAXParser();

XMLReader reader = parser.getXMLReader();
reader.setErrorHandler(new SimpleErrorHandler());
reader.parse(new InputSource(new FileReader ("document.xml")));
30
ответ дан jodonnell 28 November 2019 в 03:28
поделиться

Используйте libxml , который выполняет проверку , а имеет режим потоковой передачи.

8
ответ дан John Millikin 28 November 2019 в 03:28
поделиться

Лично мне нравится использовать XMLStarlet, который имеет интерфейс командной строки и работает над потоками. Это - ряд инструментов, основывался на Libxml2.

3
ответ дан dlamblin 28 November 2019 в 03:28
поделиться

SAX и libXML помогут, как уже упоминалось. Вы также можете попробовать увеличить максимальный размер кучи для JVM, используя опцию -Xmx. Например. установить максимальный размер кучи 512 МБ: java -Xmx512m com.foo.MyClass

1
ответ дан GaZ 28 November 2019 в 03:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: