加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在不使用循环的情况下解析XML文件?

发布时间:2020-12-16 22:49:40 所属栏目:百科 来源:网络整理
导读:我正在使用 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)}
我正在使用 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)}

这样会更快,但是仍然会冻结我的机器以获得足够大的文件.有没有解决这个问题的方法?

解决方法

正如问题的原始海报所述:

对于阅读这篇文章的任何人:最简单的解决方案将出现在XML库中的xmlToDataFrame函数中.在我的情况下,它只需要对xml文件中的读取进行微调.强烈推荐.道歉我只在发布问题后才发现这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读