0%

忽略XML文件的命名空间以找到匹配的元素

❓ Python ElementTree模块:使用findfindall方法时,如何忽略XML文件的命名空间以找到匹配的元素


✔️ 与其修改XML文档本身,不如解析它,然后修改结果中的标记,这是最好的。 这样,您可以处理多个名称空间和名称空间别名:

1
2
3
4
5
6
7
8
9
10
from StringIO import StringIO
import xml.etree.ElementTree as ET

# instead of ET.fromstring(xml)
it = ET.iterparse(StringIO(xml))
for _, el in it:
prefix, has_namespace, postfix = el.tag.partition('}')
if has_namespace:
el.tag = postfix # strip all namespaces
root = it.root