用R解析kml文件

时间:2015-12-01 13:19:32

标签: r xpath kml

编辑:事实上,似乎htmltreeparse不能很好地解析kml文件。在这种情况下,需要xmlTreeParse。

我尝试在R中解析一个巨大的kml文件。我的问题是当我想使用xpath“导航”树的节点时。无论哪种方式我都抓住了问题,我无法做到这一点,因为函数是针对xml和html文件的。 我的最终目标是获取节点地标下所有节点的字符串列表。

# parse kml file:

pc2 <- htmlTreeParse(file = "http://www.doogal.co.uk/kml/EC.kml")
pc3 <- htmlTreeParse(file = "http://www.doogal.co.uk/kml/EC.kml", useInternalNodes = T)

# doesn't work
pc2["//@Placemark"]

# doesn't work either
xpathApply(pc3, "//@Placemark")

有没有办法做到这一点或kml文件阻止所有?

到目前为止,我找到的唯一方法是通过调用节点手动执行此操作,但这不是最佳做法。

pc4 <- htmlTreeParse(file = "http://www.doogal.co.uk/kml/EC.kml")$doc$chidren$kml ....
+ for loop 

编辑:这里有一个奇怪的效果:当我下载文件时,它是一个kml文件,以kml balise开头。当我使用htmlTreeParse时,它会添加一个html级别:

<!DOCTYPE html PUBLIC "-//EN" "http://www.w3">
<?xml version="1.0" encoding="UTF-8"?>
<!-- comment here-->
<html>
     <body>
     <kml xmlns="http://www.opengis.net/kml/2.2">
         <document> 
my document here
</document></kml></body></html>

html解析器对此反应奇怪。为了纠正这个问题,我使用xmltreeparse,它最终工作正常。

0 个答案:

没有答案