【发布时间】:2020-12-26 13:43:15
【问题描述】:
有没有办法在 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代替硬编码前缀。详情见stackoverflow.com/questions/14853243/…
标签: python xml python-3.x namespaces elementtree