python - ElementTree 解析简单 KML 文档时不返回任何节点

标签 python

我有一个非常简单的 KML 文件,在使用 ElementTree 解析时不返回任何节点。这让我很沮丧:-)。有什么线索吗?

from   xml.etree  import ElementTree
from   pprint     import pprint

kml = '''<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Document>
  <name>NEXRAD Radar Sites</name>
  <Schema parent="Placemark" name="wsr">
    <SimpleField type="wstring" name="STATE">
    </SimpleField>
  </Schema>
  <wsr>
    <name>KABR</name>
  </wsr>
</Document>
</kml>
'''

tree    = ElementTree.fromstring(kml)
ElementTree.dump(tree)
for node in tree.iter('wsr'):
    pprint(node)
for node in tree.findall('../wsr'):
    pprint(node)

最佳答案

标签是有命名空间的。如果您尝试不带标签的 tree.iter() ,它将显示 ElementTree 认为标签被调用的内容。 wsr 标记称为 {http://earth.google.com/kml/2.0}wsr。这将返回一个节点:

list(tree.iter('{http://earth.google.com/kml/2.0}wsr'))

关于python - ElementTree 解析简单 KML 文档时不返回任何节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168432/

相关文章:

python - 使用 2 for 循环列出理解行为

python - 从文本文件中提取每一行的一部分

python - 无法将 sqlite 查询放入单独的列表 python

Python 日期时间与顺序问题

python - 模块对象在 Locust 0.13.0 中不可调用

python - 如何更改 Keras 中 softmax 输出的温度

python - 检查 NaT 或 pandas 时间戳

python - 无法使用 numpy load() 加载数组

Python:在python中设置用逗号分隔的两个变量值

python - 在 Python 中从 XML 中获取文本值