Wednesday, 10 December 2014

Problems when extracting attributes from an XML file using R



I'm having problems trying to extract data from an XML file (the data is stored as attributes and not as elements, if I'm right). I'm using R 3.1.2 on Windows 7 with RStudio.


The file (shortened) looks like this:



<?xml version="1.0" encoding="ISO-8859-1" ?>
<MensajePredicionesEolicas>
<CodElemento Zona="Espana">
<PotInstalada valor="22751000" />
<FechaFichero valor="2014120907" />
<Detalle>
<FechaDato valor="2014-12-09">
<HoraDato valor="7">
<Prediccion valor="10588564" />
<Percentil10 valor="9563875" />
<Percentil90 valor="11435276" />
</HoraDato>
<HoraDato valor="8">
<Prediccion valor="10269849" />
<Percentil10 valor="8588400" />
<Percentil90 valor="11623841" />
</HoraDato>
<HoraDato valor="9">
<Prediccion valor="9823678" />
<Percentil10 valor="7840628" />
<Percentil90 valor="11536093" />
</HoraDato>
</FechaDato>
</Detalle>
</CodElemento>
</MensajePredicionesEolicas>


For example, to extract the values of the atrribute FechaDato I've tried:



data <- xmlParse("file.xml")
date.pred.path <- "//CodElemento[@Zona='Espana']/Detalle/FechaDato"
date.pred <- sapply(data[date.pred.path], xmlGetAttr, "FechaDato")


I'm obtaining empty lists. Any ideas? Thanks in advantage.


No comments:

Post a Comment