下面的代码从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))Item如下所示:
<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)‘,但这似乎不是最好和最现代的。
结果应该是具有列名和数据类型的tibble。
https://stackoverflow.com/questions/41287397
复制相似问题