如何使用R从CrossRef中提取xml数据?

时间:2012-03-30 23:55:46

标签: xml r metadata

如果您输入CrossRef电子邮件,则以下URL会生成XML文件

"http://www.crossref.org/openurl?title=Science&aulast=Fernández&date=2009&multihit=true&pid=your.crossref.email"

此处提供了一个示例文件:

crossref.xml

我希望将DOI(数字对象标识)列表提取到R中的data.frame中。 我希望使用一个通用的R xml软件包

library(XML) or library(tm)

我试过了

doc<-xmlTreeParse(file)
top<-xmlRoot(doc)

但无法弄清楚如何从这里开始

top[[1]]["doi"]

不起作用。

3 个答案:

答案 0 :(得分:2)

试试这个:

library(XML)
doc <- xmlTreeParse("crossref.xml", useInternalNodes = TRUE)
root <- xmlRoot(doc)
xpathSApply(root, "//x:doi", xmlValue, namespaces = "x")

答案 1 :(得分:2)

作为rOpenSci的一部分,我和其他人有一些用于命中Crossref API的函数,函数crossref和crossref_r here

答案 2 :(得分:0)

我完全缺乏理解。我花了一天半时间看完,最后才发现这篇文章。

感谢!!!