這個問題類似於前一個問題,Import all fields (and subfields) of XML as dataframe,但我想拔出只有XML數據的一個子集,並希望包括缺失/多值。[R數據幀時,值是多個或丟失
予先從一個XML文件,並希望以基於某些它包含的數據,通過XML元素的內容來定義的R中一個數據幀。用一個例子來解釋最簡單。在下面,我想要選擇每個城市的地標信息(即使沒有地標元素或有幾個),並忽略有關電臺的信息。
<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
,但我想我打。
也想不出不只是指例子問題如何句話可以隨意編輯給一個更具描述性的問題。
謝謝。這個答案正是我正在尋找的 - 很清楚如何使用xpath來操縱xml結構,並且不依賴於xmlToDataFrame或xmlToList/ldply,這兩種方法都無法在我的_real_數據上工作,這很遺憾是isn不像上面給出的world.xml示例那麼簡單:-) – Nick