Python ElementTree默认名称空间?

Python ElementTree默认名称空间?,第1张

Python ElementTree默认名称空间

没有简单的方法可以透明地处理默认名称空间。正如您已经提到的,为空名称空间分配非空名称是一种常见的解决方案:

ns = {"mvn":"http://maven.apache.org/POM/4.0.0"}pom = xml.etree.ElementTree.parse("pom.xml")print(pom.findall("mvn:version", ns))

请注意,

lxml.etree
不允许显式使用空名称空间。您将获得:

ValueError
:ElementPath不支持空名称空间前缀


但是,通过在加载XML输入数据时删除默认的名称空间定义,可以使事情变得更简单:

import xml.etree.ElementTree as ETimport rewith open("pom.xml") as f:    xmlstring = f.read()# Remove the default namespace definition (xmlns="http://some/namespace")xmlstring = re.sub(r'sxmlns="[^"]+"', '', xmlstring, count=1)pom = ET.fromstring(xmlstring) print(pom.findall("version"))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5645392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存