在 Python ElementTree 中有定义默认/无前缀命名空间的方法吗?似乎这种方法不起作用...
ns = {"":"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("version", ns))
也不是这样的:
ns = {None:"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("version", ns))
这样做的话,我必须给每个元素添加前缀:
ns = {"mvn":"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("mvn:version", ns))
在OSX上使用Python 3.5。编辑:如果答案是否定的,你仍然可以获得奖励 :-)。我只是想从一个长期使用它的人那里得到一个明确的“否”回答。
ElementTree
,你必须使用前缀。如果你使用lxml
,你可以使用.nsmap
代替硬编码的前缀。详情请参见 https://dev59.com/vmUq5IYBdhLWcg3wBL7j。 - gtlambert