在lxml中处理XML文档的命名空间有两种常用的方法:
- 使用xpath方法处理命名空间:
from lxml import etree # 解析XML文档 tree = etree.parse('example.xml') # 定义命名空间映射 nsmap = {'ns': 'http://www.example.com'} # 使用xpath方法查询带有命名空间的元素 elements = tree.xpath('//ns:element', namespaces=nsmap) for element in elements: print(element.text)
- 使用register_namespace方法注册命名空间:
from lxml import etree # 解析XML文档 tree = etree.parse('example.xml') # 注册命名空间 etree.register_namespace('ns', 'http://www.example.com') # 查询带有命名空间的元素 elements = tree.findall('.//{http://www.example.com}element') for element in elements: print(element.text)
以上是使用lxml处理XML文档中命名空间的两种方法,根据实际情况选择适合自己的方法。