这个问题类似于上一个问题Import all fields (and subfields) of XML as dataframe,但我只想提取 XML 数据的一个子集,并希望包含缺失/多个值。
我从一个 XML 文件开始,并希望根据它包含的一些数据在 R 中构造一个数据框,这些数据由 XML 元素的内容定义。用一个例子来解释是最容易的。在下面,我想为每个城市挑选出有关地标的信息(即使没有地标元素或有多个),而忽略有关车站的信息。
<world>
<city>
<name>London</name>
<buildings>
<building>
<type>landmark</type>
<bname>Tower Bridge</bname>
</building>
<building>
<type>station</type>
<bname>Waterloo</bname>
</building>
</buildings>
</city>
<city>
<name>New York</name>
<buildings>
<building>
<type>station</type>
<bname>Grand Central</bname>
</building>
</buildings>
</city>
<city>
<name>Paris</name>
<buildings>
<building>
<type>landmark</type>
<bname>Eiffel Tower</bname>
</building>
<building>
<type>landmark</type>
<bname>Louvre</bname>
</building>
</buildings>
</city>
</world>
理想情况下,这将进入一个看起来像这样的数据框:
London Tower Bridge
New York NA
Paris Eiffel Tower
Paris Louvre
我认为可能有一种方法可以使用 XML 库来做到这一点,xpathSApply
但我认为我被打败了。
如果不参考示例,也无法思考如何表达问题,因此请随时编辑以提供更具描述性的问题。