使用R高效解析大型XML文件

使用R高效解析大型XML文件,r,xml,optimization,xml2,R,Xml,Optimization,Xml2,新来的。我经常使用R,但我对XML非常不熟悉。我正在寻找有效循环和聚合来自的大型XML文件(~200MB)的建议。我有XML文件,其中的元素如下所示: <OpportunitySynopsisDetail_1_0> <OpportunityID>134613</OpportunityID> <OpportunityTitle>Research Dissemination and Implementation Grants (R18)

新来的。我经常使用R,但我对XML非常不熟悉。我正在寻找有效循环和聚合来自的大型XML文件(~200MB)的建议。我有XML文件,其中的元素如下所示:

<OpportunitySynopsisDetail_1_0>
    <OpportunityID>134613</OpportunityID>
    <OpportunityTitle>Research Dissemination and Implementation Grants (R18)</OpportunityTitle>
    <OpportunityNumber>PAR-12-063</OpportunityNumber>
    ...
</OpportunitySynopsisDetail_1_0>
问题是:如果我将100替换为
length(nodeset)
即56k+,那么这件事将永远需要迭代。有没有更好的方法可以过滤和分析xml元素而不必逐一迭代?或者这只是文件格式的限制?长期目标是将该文件的一小部分放入数据帧中


谢谢

xml2中的函数是矢量化函数。因此,可以将整个节点向量传递给
xml\u find\u first
函数,而无需循环。这里有很多例子来演示这项技术。啊,它们是矢量化的!这就是我错过的。谢谢
for(i in c(1:100)){
    if (is.na(
        xml_child(nodeset[[i]],"d1:ArchiveDate",xml_ns(xmlfile)))){
        print(paste0("Entry ",i," is not archived."))