LXML是一个Python模块,它可以用来解析XML和HTML文档,以及构建XML和HTML文档。它是基于libxml2和libxslt C库的,它支持XPath,XSLT,RelaxNG,Schematron,XInclude,C14N,XML Schema等。
安装LXML
LXML可以通过pip或easy_install安装:
$ pip install lxml $ easy_install lxml
如果你想从源代码安装LXML,可以从GitHub上获取最新的源码:
$ git clone git://github.com/lxml/lxml.git $ cd lxml $ python setup.py install
基本用法
使用LXML解析XML文档:
from lxml import etree
# 解析XML文档
doc = etree.parse('example.xml')
# 获取根节点
root = doc.getroot()
# 遍历节点
for node in root:
print(node.tag, node.attrib)
# 获取节点属性
node.get('name')
使用LXML解析HTML文档:
from lxml import etree
# 解析HTML文档
doc = etree.parse('example.html', etree.HTMLParser())
# 获取根节点
root = doc.getroot()
# 遍历节点
for node in root:
print(node.tag, node.attrib)
# 获取节点属性
node.get('name')
使用LXML构建XML文档:
from lxml import etree
# 创建根节点
root = etree.Element('root')
# 创建子节点
child1 = etree.SubElement(root, 'child1')
child2 = etree.SubElement(root, 'child2')
# 设置节点属性
child1.set('name', 'value')
# 构建XML文档
doc = etree.ElementTree(root)
# 写入XML文档
doc.write('example.xml', pretty_print=True, xml_declaration=True, encoding='utf-8')
使用LXML构建HTML文档:
from lxml import etree
# 创建根节点
root = etree.Element('html')
# 创建子节点
head = etree.SubElement(root, 'head')
body = etree.SubElement(root, 'body')
# 设置节点属性
head.set('name', 'value')
# 构建HTML文档
doc = etree.ElementTree(root)
# 写入HTML文档
doc.write('example.html', pretty_print=True, encoding='utf-8')