2012-03-30 12 views
3

Wenn Sie in Ihrem CrossRef setzen eine E-Mail die folgende URL hier eine XML-Datei erzeugtWie extrahiert man XML-Daten aus einem CrossRef mit R?

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

Eine Beispieldatei ist:

crossref.xml

Ich mag die Liste des DOI (Digital Object extrahieren identifiziert) in eine data.frame in R. ich so mit einer der allgemeinen R xml Pakete tun wollen

library(XML) or library(tm) 

Ich habe

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

aber kann nicht herausfinden, wie man von hier

top[[1]]["doi"] 

funktioniert nicht gehen.

+0

Dank @G. Grothendieck, eine funktionierende Funktion ist jetzt verfügbar unter [crossref_get_doi] (https://github.com/edielivon/Useful-R-fuctions/tree/master/Meta_analysis) –

Antwort

2

Try this:

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

Es scheint so einfach, so präsentiert! –

2

ich und andere als Teil rOpenSci haben einige Funktionen für das Schlagen der Crossref API Funktionen crossref und crossref_r here.

+0

Crossref-Funktionen befinden sich jetzt in einem separaten R-Paket 'rcrossref' https://github.com/opensci/rcrossref/ – sckott

0

Ich hatte genau das gleiche mangelnde Verständnis. Ich habe einen Tag und eine halbe Sekunde damit verbracht, diesen Posten zu finden.

Danke !!!

Verwandte Themen