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')