从XML的动态标签获取值

时间:2018-06-26 07:56:05

标签: r xml

我有类似的数据:

<location country="SWITZERLAND" city="" state="" xsi:nil="true"/>
<location country="URUGUAY" city="" state="" xsi:nil="true"/>            

以上的位置标记在XML中具有动态大小,我仅显示了2个国家/地区,但也可能是1个或5个。现在,我要提取SWITZERLANDURUGUAY之类的值,并将它们存储在数据帧的单个单元格中。

1 个答案:

答案 0 :(得分:1)

您可以使用xpathSApply来获取节点的属性

library(XML)

doc <- xmlParseDoc("test.xml")
df <- as.data.frame(t(xpathSApply(doc, "//location_tag/location", xmlAttrs)))

给出

> df
      country city state
1 SWITZERLAND           
2     URUGUAY           


示例数据:请注意,由于您没有提供完整的XML,因此我对您的示例数据进行了一些修改。 test.xml包含

<location_tag>
<location country="SWITZERLAND" city="" state=""/>
<location country="URUGUAY" city="" state=""/>
</location_tag>