KML/XML 解析不起作用:整个 XML 数据存储在单个对象中,并且未被解析

KML/XML parsing at R not working: whole XML data gets stored in single object and is not being parsed

提问人:Igor Calado 提问时间:10/12/2023 更新时间:10/12/2023 访问量:24

问:

我对新手感到内疚。帮助。

我与从谷歌地图(个性化地图)下载了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 中保持正确。我不知道为什么。

在这个黑暗的时刻,任何光明都将受到赞赏。

r xml xml 解析 KML

评论

2赞 Allan Cameron 10/12/2023
如果没有(指向)实际示例文件的链接,任何人都无法在这里为您提供帮助。如果我们不能自己测试和验证解析,我们就无法探索解析可能发生的情况。可能性实在是太多了。请使您的问题可重复。

答: 暂无答案