Python中lxml的etree标签解析
lxml是Python中一个高效且易于使用的XML和HTML处理库。其中,etree模块提供了一种解析XML和HTML文档的方法。本文将详细介绍如何使用lxml的etree模块解析XML和HTML文档,并提供两个示例。
步骤1:安装lxml库
在使用lxml库之前,我们需要安装它。您可以使用以下命令安装lxml库:
pip install lxml
步骤2:解析XML文档
以下是解析XML文档的示例代码:
from lxml import etree
# 解析XML文档
xml_str = '''
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
'''
root = etree.fromstring(xml_str)
# 获取根节点
print(root.tag)
# 遍历子节点
for child in root:
print(child.tag, child.attrib)
# 获取指定节点
title = root.xpath('//book/title')[0]
print(title.text)
print(title.get('lang'))
在上面的示例中,我们使用etree.fromstring()方法解析XML文档。我们使用root.tag获取根节点的标签,并使用for循环遍历子节点。我们使用root.xpath()方法获取指定节点,并使用get()方法获取节点属性。
步骤3:解析HTML文档
以下是解析HTML文档的示例代码:
from lxml import etree
# 解析HTML文档
html_str = '''
<html>
<head>
<title>Example HTML Page</title>
</head>
<body>
<h1>Example HTML Page</h1>
<p>This is an example HTML page.</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
</html>
'''
root = etree.HTML(html_str)
# 获取根节点
print(root.tag)
# 遍历子节点
for child in root:
print(child.tag)
# 获取指定节点
title = root.xpath('//title')[0]
print(title.text)
在上面的示例中,我们使用etree.HTML()方法解析HTML文档。我们使用root.tag获取根节点的标签,并使用for循环遍历子节点。我们使用root.xpath()方法获取指定节点。
示例1:解析XML文件
以下是解析XML文件的示例代码:
from lxml import etree
# 解析XML文件
tree = etree.parse('books.xml')
root = tree.getroot()
# 获取根节点
print(root.tag)
# 遍历子节点
for child in root:
print(child.tag, child.attrib)
# 获取指定节点
title = root.xpath('//book/title')[0]
print(title.text)
print(title.get('lang'))
在上面的示例中,我们使用etree.parse()方法解析XML文件。我们使用root.tag获取根节点的标签,并使用for循环遍历子节点。我们使用root.xpath()方法获取指定节点,并使用get()方法获取节点属性。
示例2:解析HTML文件
以下是解析HTML文件的示例代码:
from lxml import etree
# 解析HTML文件
tree = etree.parse('index.html')
root = tree.getroot()
# 获取根节点
print(root.tag)
# 遍历子节点
for child in root:
print(child.tag)
# 获取指定节点
title = root.xpath('//title')[0]
print(title.text)
在上面的示例中,我们使用etree.parse()方法解析HTML文件。我们使用root.tag获取根节点的标签,并使用for循环遍历子节点。我们使用root.xpath()方法获取指定节点。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 中 lxml 的 etree 标签解析 - Python技术站