我正在使用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)}
这个速度更快,但是我的机器仍在冻结足够大的文件。有没有解决这个问题的方法?
答案 0 :(得分:2)
正如问题的原始海报所述:
对于阅读这篇文章的任何人:最简单的解决方案将出现在xmlToDataFrame
库中的XML
函数中。在我的情况下,它只需要对xml文件中的读取进行微调。强烈推荐。道歉我只在发布问题后才发现这一点。