我正在使用 XML包解析一堆大型xml文件,以获取变量“varname”的值.我使用的代码是: library(XML)a = xmlTreeParse("/path/filename.xml")r = xmlRoot(a)namelist = list()for(i in 1:xmlSize(r)){namelist[[i]] - xmlValue(x
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)}
这样会更快,但是仍然会冻结我的机器以获得足够大的文件.有没有解决这个问题的方法?
正如问题的原始海报所述:对于阅读这篇文章的任何人:最简单的解决方案将出现在XML库中的xmlToDataFrame函数中.在我的情况下,它只需要对xml文件中的读取进行微调.强烈推荐.道歉我只在发布问题后才发现这一点.