提问人:Igor Calado 提问时间:10/12/2023 更新时间:10/12/2023 访问量:24
KML/XML 解析不起作用:整个 XML 数据存储在单个对象中,并且未被解析
KML/XML parsing at R not working: whole XML data gets stored in single object and is not being parsed
问:
我对新手感到内疚。帮助。
我与从谷歌地图(个性化地图)下载了KML格式的数据,并希望将其转换为一些干净的表格。男孩,我错了!KML 读取函数只能读取 5 个条目,但应该还有几十个。我以文本形式打开了文件,可以看到数据在那里。
由于非空间数据部分存储在 XML 中,因此我在使用 xmlTreeParse() 将文件读入 R 时取得了更大的成功,但无法将地图图层分成表格,将数据条目分成行,将标签分成列。这些图层具有不同的数据结构。
我有一个包含所有 XML 数据的 R 对象(它已经是 xmlRoot() 的结果)。它的类是 “XMLNode”, “RXMLAbstractNode”, “XMLAbstractNode”, “oldClass”。我在 youtube 和 stackoverflow 周围搜索了高低,还尝试了 XML 和 xml2 包中的许多函数,但仍然无法发现如何按给定节点拆分此对象。
所有视频都理所当然地认为,在 xmlRoot 之后,节点将在 R 的列表中显示为不同的元素,但事实并非如此。如果我再次使用xmlRoot,那么我就会丢失大部分XML结构,它就会变成参数和cdata的截断混乱,如下所示:
namespace = "", namespaceDefinitions = NULL)), namespace = "", namespaceDefinitions = NULL), Folder = list(name = "Folder", attributes = NULL, children = list(name = list(name = "name", attributes = NULL, children = list(text = list(name = "text", attributes = NULL, children = NULL, namespace = NULL, namespaceDefinitions = NULL, value = "Camada sem título")), namespace = "", namespaceDefinitions = NULL)), namespace = "", namespaceDefinitions = NULL)), namespace = "", namespaceDefinitions = NULL))/>
</>
我已经阅读了与文本行相同的文档,并确定了图层 () 和条目 () 的标签,我只是无法将其作为 XML 处理。
还尝试了xmlToDataFrame,但仅使用我拥有的高级对象,它只能创建一个单行数据帧,其中多汁的层只是截断的单元格(每个单元格主要由CDATA组成,而不是我要找的)。
哦,还有最后一个问题:似乎有些数据被无缘无故地修改了。我发现了一个实例,其中节点中的值从“1.2711053”更改为“1.2711053e7”,但在 CDATA 中保持正确。我不知道为什么。
在这个黑暗的时刻,任何光明都将受到赞赏。
答: 暂无答案
评论