我有一个非常简单的 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/