2017-02-14 3 views
1

Ich habe eine Liste von URLs, die auf verschiedene XML-Dateien verweisen, und ich möchte einige Informationen daraus mit R und dem xml-Paket extrahieren.XML aus einer URL-Liste analysieren

Ich versuche, dies mit einer for Schleife zu tun. Ich habe diesen Code, aber es gibt mir nur die letzte xml (numtotal), wie kann ich alle von ihnen lesen?

for (i in seq(from = 1, to = numtotal, by = 1)){ 
    urli <- xmlParse(urls[[i]], useInternalNodes = TRUE) 
    top_numberi <- xmlRoot(urli) 
    GS = data.frame(GS = xpathSApply(top_numberi,"//a//b",xmlValue)) 
} 

wo:

  • urls ist eine Liste von 7 oder mehr URLs
  • numtotal ist die Länge einer anderen Liste (Zahlenwert)
+1

Verwenden Sie stattdessen "lapply", so dass alles in einer Liste ist. – alistaire

+1

Ich verstehe die enge Abstimmung mit dieser Begründung nicht. Der Fehler ist offensichtlich und wurde mit der geringen Menge an Code leicht beantwortet. Fast sicher war ein Duplikat, weil das Versäumen von Indexzuweisungen innerhalb von for-Schleifen ein solcher allgemeiner Fehler ist. –

Antwort

1

Jede Iteration Ihrer for Schleife überschreibt Ihren GS Datenrahmen. Statt einen Datenrahmen zu verwenden, um eine Liste außerhalb der

l = list() 
Schleife erstellen

füllen dann in den Elementen in der Schleife

l[i] = xpathSApply(top_numberi,"//a//b",xmlValue) 

Als Nebenwirkung ist dies eine sehr einfache Frage. Sie sollten einige Standard-R-Lehrbücher lesen, bevor Sie weiter gehen.