背景
在处理一些XML文件时,我们会遇到带有 xmlns
属性的元素,比如 Maven 项目中的 pom.xml
;
这个 xmlns
属性定义了元素的命名空间;
在使用 lxml
解析时,元素和子元素的标签名称不再只是标签名称本身,他们的前面会自动带上xmlns
属性指定的URI
,
这时如果直接使用 xpath
语法定位标签会非常麻烦,经常定位不到对应的元素,所以在此收集 lxml
处理 XML 命名空间的方法;
举例
from lxml import etree
xml_string = """
<project xmlns="http://maven.apache.org/POM/4.0.0">
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
"""
xml_tree = et