Как извлечь данные XML из CrossRef с помощью R? - PullRequest
3 голосов
/ 31 марта 2012

Если вы введете в свой адрес электронной почты CrossRef следующий URL, вы получите файл XML

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

Пример файла доступен здесь:

crossref.xml

Я хочу извлечь список DOI (цифровых идентификаторов объектов) в data.frame в R. Я хочу сделать это, используя один из общих пакетов R xml

library(XML) or library(tm)

Я пытался

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

но не могу понять, как отсюда идти

top[[1]]["doi"]

не работает.

Ответы [ 3 ]

2 голосов
/ 30 июня 2012

I и другие, входящие в состав rOpenSci , имеют некоторые функции для включения API Crossref, функции crossref и crossref_r здесь .

2 голосов
/ 31 марта 2012

Попробуйте это:

library(XML)
doc <- xmlTreeParse("crossref.xml", useInternalNodes = TRUE)
root <- xmlRoot(doc)
xpathSApply(root, "//x:doi", xmlValue, namespaces = "x")
0 голосов
/ 29 ноября 2013

У меня было то же самое непонимание.Я потратил полтора дня на поиски и, наконец, наткнулся на этот пост.

Спасибо !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...