在lxml中處理XML命名空間,可以通過傳遞一個字典給namespaces
參數來定義命名空間的前綴和URI,然后在使用XPath表達式時可以使用這些前綴來訪問節點。
例如:
from lxml import etree
# 定義命名空間的前綴和URI
namespaces = {
'ns': 'http://www.example.com/ns'
}
# 創建XML文檔
xml_str = """
<ns:root xmlns:ns="http://www.example.com/ns">
<ns:child>Child Element</ns:child>
</ns:root>
"""
root = etree.fromstring(xml_str)
# 添加命名空間映射
etree.register_namespace('ns', 'http://www.example.com/ns')
# 使用XPath表達式來選擇節點
child_node = root.xpath('//ns:child', namespaces=namespaces)[0]
print(child_node.text)
在上面的例子中,我們定義了一個名為ns
的命名空間前綴,并將其映射到URIhttp://www.example.com/ns
。然后我們使用XPath表達式//ns:child
來選擇<ns:child>
節點,并打印其文本內容。