Я пытаюсь сгладить XML с повторяющимися узлами одного и того же имени (но однозначно идентифицируется значением атрибута) до плоских данных в R. Например, я имеюПреобразование XML с повторяющимися узлами в кадре данных R
<?xml version="1.0"?>
<data>
<tr id="1">
<A id="100">100</A>
<B>abc</B>
<C>true</C>
</tr>
<tr id="2">
<A id="200">200</A>
<A id="300">300</A>
<B>wxyz</B>
<C>FALSE</C>
</tr>
</data>
желаемый результат является data.frame, который будет выглядеть
tr A B C
1 100 abc true
2 200 wxyz FALSE
2 300 wxyz FALSE
Я прочитал XML ...
library(XML)
xmlfile <- "H:/My Documents/Code/R/xml/example.xml"
xmldoc <- xmlTreeParse(xmlfile)
Использование xpathSApply(), я могу получить каждый узел и атрибут без проблем, например,
data.frame(id = xpathSApply(xmldoc, "//A", xmlGetAttr, "id"))
, но я не организовать всю партию в data.frame, так как число «А» узлов больше (3), чем число всех остальных узлов (2).
Любая помощь будет принята с благодарностью ...