问题:找不到带有“:”的元素-无法运行程序。我找到了一些关于Qualified Names的参考资料,但我不知道如何应用它们。在
代码:
#!/usr/bin/env python
from xml.etree.ElementTree import ElementTree
kmlTree = ElementTree()
kmlTree.parse("data/history-03-08-2012.kml")
track = kmlTree.find(".//{http://www.opengis.net/kml/2.2}gx:Track")
示例数据文件:
^{pr2}$错误:
Traceback (most recent call last):
File "main.py", line 7, in <module>
track = kmlTree.find(".//{http://www.opengis.net/kml/2.2}gx:Track") #most interesting data is stored in this tag
File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 614, in find
return self._root.find(path)
File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
return ElementPath.find(self, path)
File "/usr/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
return _compile(path).find(element)
File "/usr/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
p = Path(path)
File "/usr/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
"expected path separator (%s)" % (op or tag)
SyntaxError: expected path separator (:)
代码适用于没有“:”的元素
gx
是{http://www.google.com/kml/ext/2.2}
的命名空间快捷方式。从find
中取出gx:
,并使用正确的命名空间:输出
^{pr2}$我知道这是另一个使用lxml的解决方案。在
我相信类似的方法也可以用于
ElementTree
。在相关问题 更多 >
编程相关推荐