R如何读取XML文件

时间:2015-10-21 16:37:18

标签: xml r

我有一个XML文件,如下所示

<?xml version="1.0" encoding="UTF-8" ?> 
<s_observation>
  <observation datetime="2014-09-01T00:00:00Z">
    <station id="06179" lat="49.44700" lon="18.78123">
      <precipitation>0.0</precipitation> 
    </station>
    <station id="06200" lat="49.29720" lon="18.78431">
      <precipitation>0.0</precipitation> 
      <discharge>10.450</discharge> 
    </station>
 </observation>
</s_observation>

我可以通过以下命令正确获得放电和降水的值:

tavola1 = xmlToDataFrame(nodes=getNodeSet(data1,"//s_observation/observation/station"))

我不知道如何获得“观察日期时间”和“站点ID”的值。 你能救我吗?

1 个答案:

答案 0 :(得分:0)

假设此xml文件位于您的工作目录中并命名为test.xml,则以下内容应说明XML包的各种功能/特性以及如何获取observation datetime和来自各个节点的station id

library(XML)

doc <- xmlTreeParse("test.xml")
root <- xmlRoot(doc)
obs_child <- xmlChildren(root)

xmlAttrs(obs_child[[1]])
#               datetime 
# "2014-09-01T00:00:00Z" 

xmlGetAttr(obs_child[[1]], "datetime")
# [1] "2014-09-01T00:00:00Z"

stations <- xmlChildren(obs_child[[1]])
xmlAttrs(stations[[1]])
#     id        lat        lon 
# "06179" "49.44700" "18.78123" 
xmlGetAttr(stations[[1]], "id")
# [1] "06179"

xmlAttrs(stations[[2]])
#      id        lat        lon 
# "06200" "49.29720" "18.78431" 
xmlGetAttr(stations[[2]], "id")
# [1] "06200"