【发布时间】:2016-12-22 16:12:14
【问题描述】:
以下代码从 XML 文件中提取一个(或全部)属性:
library(xml2);library(magrittr);library(readr);library(tibble);library(knitr)
fname<-'https://raw.githubusercontent.com/wardblonde/ODM-to-i2b2/master/odm/examples/CDISC_ODM_example_3.xml'
fname
x<-read_xml(fname)
xpath="//d1:ItemDef"
itemsNames <- x %>% xml_find_all(xpath, ns=xml_ns(x)) %>% xml_attr('Name')
items <- x %>% xml_find_all(xpath, ns=xml_ns(x))
项目如下所示:
<ItemDef OID="IT.ABNORM" Name="Normal/Abnormal/Not Done" DataType="integer" Length="1" ...
示例文件可以在这里查看:https://raw.githubusercontent.com/wardblonde/ODM-to-i2b2/master/odm/examples/CDISC_ODM_example_3.xml
使用管道和 xml_attr,提取 Name 和 DataType 属性并重新绑定它们的最佳方法是什么?
理想情况下,它将是一行超级高效的管道代码。我可以提取名称和类型并拥有“data.frame(name=names,type=types)”,但这似乎不是最好和最现代的。
结果应该是一个带有列名和数据类型的小标题。
【问题讨论】:
标签: r xml-parsing xml2