2
我嘗試使用元素樹如下找到從KML文件中的元素中不匹配:Python的ElementTree的發現()KML文件
from xml.etree.ElementTree import ElementTree
tree = ElementTree()
tree.parse("history-03-02-2012.kml")
p = tree.find(".//name")
文件來演示該問題的一個子集,足以如下:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Location history from 03/03/2012 to 03/10/2012</name>
</Document>
</kml>
存在「name」元素;爲什麼搜索回來了空?
除了@CharlesDuffy好的答案(+1),你也可以把你的xpath改成'// * [name()='name']'。 – 2012-03-09 19:55:09
@DevNull ... as a aside - ElementTree的'find()'不*相當* XPath;更多地將其視爲「受XPath啓發」的語言。因此,雖然您的字符串是完全有效的XPath,並且是一種方便的方法來與其他工具一起使用,但它似乎不適用於xml.etree.ElementTree實現的子集(與lxml.etree相反,後者使用libxml2的XPath 1.0實現)。 – 2012-03-09 22:24:38
@CharlesDuffy - 很高興知道謝謝! – 2012-03-09 22:27:09