2012-11-20 13 views
5

Sto cercando di analizzare e analizzare il seguente feed RSS http://www.huffingtonpost.com/rss/liveblog/liveblog-1213.xml Ho esaminato altre query relative a R e XML e non sono stato in grado di fare alcun progresso sul mio problema. Il codice XML per ogni voceParse feed RSS tramite pacchetto XML R

 <item> 
    <title><![CDATA[Five Rockets Intercepted By Iron Drone Systems Over Be'er Sheva]]></title> 
    <link>http://www.huffingtonpost.co.uk/2012/11/15/tel-aviv-gaza-rocket_n_2138159.html#2_five-rockets-intercepted-by-iron-drone-systems-over-beer-sheva</link> 
    <description><![CDATA[<a href="http://www.haaretz.com/news/diplomacy-defense/live-blog-rockets-strike-tel-aviv-area-three-israelis-killed-in-attack-on-south-1.477960" target="_hplink">Haaretz reports</a> that five more rockets intercepted by Iron Dome systems over Be'er Sheva. In total, there have been 274 rockets fired and 105 intercepted. The IDF has attacked 250 targets in Gaza.]]></description> 
    <guid>http://www.huffingtonpost.co.uk/2012/11/15/tel-aviv-gaza-rocket_n_2138159.html#2_five-rockets-intercepted-by-iron-drone-systems-over-beer-sheva</guid> 
    <pubDate>2012-11-15T12:56:09-05:00</pubDate> 
    <source url="http://huffingtonpost.com/rss/liveblog/liveblog-1213.xml">Huffingtonpost.com</source> 
    </item> 

Per ogni voce/post voglio registrare "Data" (pubDate), "Titolo" (titolo), "Description" (testo completo pulito). Ho provato a usare il pacchetto xml in R, ma confesso di essere un po 'novellino (poca esperienza con XML, ma qualche esperienza con R). Il codice sto lavorando fuori di, e da nessuna parte con è:

library(XML) 

xml.url <- "http://www.huffingtonpost.com/rss/liveblog/liveblog-1213.xml" 

# Use the xmlTreePares-function to parse xml file directly from the web 

xmlfile <- xmlTreeParse(xml.url) 

# Use the xmlRoot-function to access the top node 

xmltop = xmlRoot(xmlfile) 

xmlName(xmltop) 

names(xmltop[[ 1 ]]) 

    title   link description  language  copyright 
    "title"  "link" "description" "language" "copyright" 
category  generator   docs   item   item 
    "category" "generator"  "docs"  "item"  "item" 

Tuttavia, ogni volta che cerco di manipolare e cercare di manipolare il "titolo", o informazioni "descrizione", che continuamente si verificano errori. Qualsiasi aiuto per la risoluzione di questo codice sarebbe più apprezzato.

Grazie, Thomas

risposta

10

Sto usando la biblioteca eccellente Rcurl e xpathSApply

Questo è lo script vi dà 3 liste (titolo, pubdates e descrizione)

library(RCurl) 
library(XML) 
xml.url <- "http://www.huffingtonpost.com/rss/liveblog/liveblog-1213.xml" 
script <- getURL(xml.url) 
doc  <- xmlParse(script) 
titles <- xpathSApply(doc,'//item/title',xmlValue) 
descriptions <- xpathSApply(doc,'//item/description',xmlValue) 
pubdates <- xpathSApply(doc,'//item/pubDate',xmlValue) 
+0

per ulteriori informazioni, xpathSApply nella libreria XML –