将xml数据导入nodeset,并将两个列表导入表中

时间:2013-11-26 04:44:36

标签: r xml list nodes

我使用xmlParse提取XML数据。然后我使用getNodeSet来提取如下所示的节点集:

<field dollars="false" unit="(deaths/1,000 live births)" rankorder="1" name="Infant mortality rate" id="f2091">
  <rank number="175.90" dateEstimated="true" dateLatest="2011-12-31" dateEarliest="2011-01-01" dateText="2011 est." country="ao"/>
  <rank number="149.20" dateEstimated="true" dateLatest="2011-12-31" dateEarliest="2011-01-01" dateText="2011 est." country="af"/>
  <rank number="112.22" dateEstimated="true" dateLatest="2011-12-31" dateEarliest="2011-01-01" dateText="2011 est." country="ng"/>
  <rank number="111.35" dateEstimated="true" dateLatest="2011-12-31" dateEarliest="2011-01-01" dateText="2011 est." country="ml"/>
  <rank number="105.56" dateEstimated="true" dateLatest="2011-12-31" 
</field>

接下来,我使用xmlSApplyxmlGetAttr命令(xmlSApply(nodeset1, xmlGetAttr, "number"))将部分节点拉出到列表中。

  

$ rank [1]“175.90”

     

$ rank [1]“149.20”

     

$ rank [1]“112.22”

     

$ rank [1]“111.35”

我用另一个单词(xmlSApply(nodeset1, xmlGetAttr, "country"))再次完成它以获得另一个列表:

  

$ rank [1]“ao”

     

$ rank [1]“af”

     

$ rank [1]“ng”

     

$ rank [1]“ml”

现在我想创建一个合并每个列表中的值的表。我似乎无法做到这一点。我认为问题是每个项目列表都以$rank开头,但我不知道如何摆脱它。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您的节点集具有类似于结构的表,那么最好的方法是使用XML包中的函数xmlToDataFrame将其转换为data.frame。

df&lt; - xmlToDataFrame(nodes = ns)