Разбор XML-файлов без использования циклов? - PullRequest
4 голосов
/ 08 февраля 2012

Я анализирую кучу больших XML-файлов, используя пакет XML для значений переменной "varname".Код, который я использую:

library(XML)
a = xmlTreeParse("/path/filename.xml")
r = xmlRoot(a)
namelist = list()
for(i in 1:xmlSize(r)){namelist[[i]] <- xmlValue(xmlChildren(r[[i]])$varname)}

Поскольку это занимает много времени, я попытался параллельной обработки:

library(foreach)
library(doMC)
registerDoMC()
namelist = list()
namelist <- foreach(i = 1:xmlSize(r)) %dopar% {namelist[[i]] <- xmlValue(xmlChildren(r[[i]])$varname)}

Это быстрее, но все еще замораживает моймашина для достаточно больших файлов.Есть ли способ обойти эту проблему?

1 Ответ

2 голосов
/ 07 апреля 2013

Как указано в оригинальном постере вопроса:


Для всех, кто читает этот пост: самое простое решение - функция xmlToDataFrame в библиотеке XML. В моем случае требуется лишь небольшая настройка чтения в xml-файле. Настоятельно рекомендуется. Извинения я узнал об этом только после публикации вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...