尝试将XML文件转换为R中的数据帧。但是,对于一个客户,XML标记(节点)具有相同的名称两次。我希望每个节点位于数据框的单独列中。
<Consumer ConsumerOID="123">
<BillingContact>
<PhoneInformation Type="Main">
<PhoneNumber>4758796523</PhoneNumber>
</PhoneInformation>
<PhoneInformation Type="Home">
<PhoneNumber>1234567890</PhoneNumber>
</PhoneInformation>
</BillingContact>
</Consumer>
<Consumer ConsumerOID="256">
<BillingContact>
<PhoneInformation Type="Main">
<PhoneNumber>9856321475</PhoneNumber>
</PhoneInformation>
</BillingContact>
</Consumer>
library(XML)
doc<-xmlParse("test.xml")
step1 <- xmlToDataFrame(nodes=getNodeSet(doc,"//OCADocument/Consumer/BillingContact/PhoneInformation"))
上面的代码仅给我提供电话号码,并且仅提供给数据框中的一列。这使得很难识别哪个电话号码属于哪个消费者OID。
我希望以如下所示的数据帧格式输出
"ConsumerID Phonenumber1 Phonenumber2"
" 123 4758796523 1234567890"
" 256 9856321475 NA"