2017-01-04 4 views
1

ich Fehler erhalte beim Versuch, XML-Datei in R.Fehler beim XML in R zu analysieren

Hier zu analysieren sind, was ich zu tun versucht:

library(XML) 
fileUrl <- "http://www.w3schools.com/xml/simple.xml" 
doc <- xmlTreeParse(fileUrl, useInternal=TRUE) 

ich diese Fehlermeldung erhalten, unten: "

Opening and ending tag mismatch: meta line 4 and head 
StartTag: invalid element name 
Opening and ending tag mismatch: br line 73 and p 
Opening and ending tag mismatch: br line 94 and body 
Opening and ending tag mismatch: br line 93 and html 
Premature end of data in tag br line 92 
Premature end of data in tag br line 78 
Premature end of data in tag br line 77 
... 
... 
16: Premature end of data in tag br line 64 
17: Premature end of data in tag body line 63 
18: Premature end of data in tag meta line 3 
19: Premature end of data in tag head line 2 
20: Premature end of data in tag html line 2 

"

Ich verwende R Version 3.3.2 unter Windows 7. XML-Lib-Version ist 3.98.1.5.

Wäre froh, wenn jemand helfen könnte, da dies ein einfaches Parsen sein soll, aber ich bleibe hier drin stecken.

+0

Sie haben versuchte 'xmlParse (fileUrl, useInternalNodes = FALSE)' 'xmlParse()' und 'xmlTreeParse()' sind identisch, außer dass der Standardwert von useInternalNodes andere Werte hat. –

+0

Ich habe diese ausprobiert und es gibt immer noch das gleiche Ergebnis aus. – addicted

Antwort

0

Mit Paket XML es funktioniert für mich, die ausgegeben wird (mit dplyr den Ausgang in data.frame haben):

library(XML) 
library(dplyr) 

fileUrl <- "http://www.w3schools.com/xml/simple.xml" 
doc <- xmlTreeParse(fileUrl, useInternal=TRUE) %>% 
    xmlToDataFrame() 
doc 

name price                   description calories 
1    Belgian Waffles $5.95     Two of our famous Belgian Waffles with plenty of real maple syrup  650 
2 Strawberry Belgian Waffles $7.95     Light Belgian waffles covered with strawberries and whipped cream  900 
3 Berry-Berry Belgian Waffles $8.95 Light Belgian waffles covered with an assortment of fresh berries and whipped cream  900 
4    French Toast $4.50         Thick slices made from our homemade sourdough bread  600 
5   Homestyle Breakfast $6.95     Two eggs, bacon or sausage, toast, and our ever-popular hash browns  950 

Eine weitere Option mit Bibliothek, um zu versuchen ist xml2:

library(xml2) 
library(dplyr) 

fileUrl <- "http://www.w3schools.com/xml/simple.xml" 

# As a list 
doc <-read_xml(fileUrl) %>% 
    as_list() 
+0

Es versagt mich immer noch irgendwie. Aber ich habe einen Weg gefunden, es zum Laufen zu bringen. Ich habe die simple.xml in mein lokales Verzeichnis heruntergeladen und die XML-Datei vom lokalen Verzeichnis analysiert. Es funktioniert gut. Ich bin nicht ganz sicher, warum ich es nicht von der Website analysieren kann. Ist es möglich, dass die XML-Datei in der w3schools-Website in einem HTML-Code enthalten ist? Deshalb kann es nicht geparst werden. – addicted