从R中的xml文档中提取特定值

时间:2018-06-28 07:46:28

标签: r xml xpath

我的xml文档看起来像这样

<contrib-group>
        <contrib contrib-type="author" xlink:type="simple">
           <string-name>
              <given-names>Anagha K.</given-names>
              <x xml:space="preserve"> </x>
              <surname>Matapurkar</surname>
           </string-name>
           <x xml:space="preserve"/>
        </contrib>
        <contrib contrib-type="author" xlink:type="simple">
           <string-name>
              <given-names>Milind G.</given-names>
              <x xml:space="preserve"> </x>
              <surname>Watve</surname>
           </string-name>
           <x xml:space="preserve"/>
        </contrib>
        <aff id="aff_1">Life Research Foundation, 10 Pranav, 1000/6‐c, Navi Peth, Pune 411 030, India</aff>
        <x xml:space="preserve"/>
     </contrib-group>

我有多个xml文件,每个文件都具有相同的结构 而且我已经找到了让所有人循环运行代码的方法。

我想从每个文件中提取联盟信息

我已经在函数中用R编写了这样的xpath表达式 我使用ldply遍历所有文件

我使用的库是XML,plyr

doc <-xmlToDataFrame(nodes=getNodeSet(tempdoc,"//aff"))

其中tempdoc是已解析的xml文档

我收到列重复下标的错误。

xpath表达式是否错误,请帮忙?还是可以给我一些上述r代码行中xpath语法的更正?

1 个答案:

答案 0 :(得分:0)

使用xml2软件包:

library(xml2)
xml_as_list <- as_list(read_xml("theFile.xml"))
xml_as_list[["contrib-group"]][["aff"]][[1]]

给予:

"Life Research Foundation, 10 Pranav, 1000/6‐c, Navi Peth, Pune 411 030, India"