2015-07-15 3 views
-1

Мне нужно извлечь данные из файла xml. Я попытался использовать xmlToList и xmlTodataframe, но я потерпел неудачу, потому что получаю пустой список(). Мне нужна помощь, потому что это example работает, но это не относится к моему делубольшой lvl xml to r извлечение данных

Мой файл XML выглядит

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<timeSeriesResponse xmlns="http://www.cuahsi.org/waterML/1.1/"> 
<queryInfo> 
    <creationTime>2015-07-14T10:35:39.452+00:00</creationTime> 
    <criteria MethodCalled="GetValues"> 
    <parameter value="S:F006875" name="site"/> 
    <parameter value="S:3047695" name="variable"/> 
    <parameter value="2014-08-25T00:00:00" name="startDate"/> 
    <parameter value="2014-08-29T00:00:00" name="endDate"/> 
    </criteria> 
</queryInfo> 
<timeSeries> 
    <sourceInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SiteInfoType"> 
    <siteName>Central - Ca l'Espona (A)</siteName> 
    <siteCode network="STR">F006875</siteCode> 
    </sourceInfo> 
    <variable> 
    <variableCode default="true" vocabulary="STR">3047695</variableCode> 
    <variableName>Potència T1-BOBITÈCNIC</variableName> 
    </variable> 
    <values> 
    <value qualityControlLevelCode="0" sourceCode="1" methodCode="0" dateTimeUTC="2014-08-26T18:15:00+00:00" timeOffset="+01:00" dateTime="2014-08-26T18:15:00+00:00" censorCode="nc">452</value> 
    <value qualityControlLevelCode="0" sourceCode="1" methodCode="0" dateTimeUTC="2014-08-26T18:45:00+00:00" timeOffset="+01:00" dateTime="2014-08-26T18:45:00+00:00" censorCode="nc">456</value> 
    <value qualityControlLevelCode="0" sourceCode="1" methodCode="0" dateTimeUTC="2014-08-26T19:15:00+00:00" timeOffset="+01:00" dateTime="2014-08-26T19:15:00+00:00" censorCode="nc">460</value> 
    <value qualityControlLevelCode="0" sourceCode="1" methodCode="0" dateTimeUTC="2014-08-27T02:30:00+00:00" timeOffset="+01:00" dateTime="2014-08-27T02:30:00+00:00" censorCode="nc">464</value> 
    <value qualityControlLevelCode="0" sourceCode="1" methodCode="0" dateTimeUTC="2014-08-27T02:45:00+00:00" timeOffset="+01:00" dateTime="2014-08-27T02:45:00+00:00" censorCode="nc">460</value> 
    <value qualityControlLevelCode="0" sourceCode="1" methodCode="0" dateTimeUTC="2014-08-27T03:00:00+00:00" timeOffset="+01:00" dateTime="2014-08-27T03:00:00+00:00" censorCode="nc">460</value> 
    <value qualityControlLevelCode="0" sourceCode="1" methodCode="0" dateTimeUTC="2014-08-25T13:30:00+00:00" timeOffset="+01:00" dateTime="2014-08-25T13:30:00+00:00" censorCode="nc">468</value> 
    <value qualityControlLevelCode="0" sourceCode="1" methodCode="0" dateTimeUTC="2014-08-25T13:45:00+00:00" timeOffset="+01:00" dateTime="2014-08-25T13:45:00+00:00" censorCode="nc">472</value> 
    <qualityControlLevel qualityControlLevelID="0"> 
     <qualityControlLevelCode>0</qualityControlLevelCode> 
     <definition>Raw data</definition> 
     <explanation/> 
    </qualityControlLevel> 
    <method methodID="0"> 
     <methodCode>0</methodCode> 
     <methodDescription>Not defined</methodDescription> 
    </method> 
    </values> 
</timeSeries> 

Благодарности

+0

Что такое ценность данных? Здесь много смысла? Пожалуйста, будьте конкретны. – user227710

+0

@ пользователь227710 внутри , в конце каждого ** 452 **

+0

Вы имеете в виду 452, 456, 460 ... 472? Если да, проверьте мой ответ. – user227710

ответ

0

Вот решение, используя rvest пакет:

library(rvest) 
    res<-read_html("yourxmldoc.xml") 
    res %>% 
    html_nodes("value")%>% 
    html_text() 
    [1] "452" "456" "460" "464" "460" "460" "468" "472" 
Смежные вопросы