如何使用 LXML 解析 XML
有关如何使用 LXML 解析 XML 的分步指南。
重要提示:本文假设您熟悉 XML 数据结构。请参阅 W3Schools XML 教程 如果你需要复习。
步骤 1。 使用 pip 安装 LXML。
pip install lxml
TIPS: LXML 文档。如果您在 Python 中使用 LXML,请导入 树 模块。
from lxml import etree
filename = "file/location.xml"
parser = etree.XMLParser()
tree = etree.parse(filename, parser)
2. 发出 HTTP 请求从互联网获取 XML 内容。
r=requests.get('https://www.w3schools.com/xml/simple.xml')
tree = etree.XML(r.content)
Belgian Waffles
$5.95
Two of our famous Belgian Waffles with plenty of real maple syrup
650
Strawberry Belgian Waffles
$7.95
Light Belgian waffles covered with strawberries and whipped cream
900
Berry-Berry Belgian Waffles
$8.95
Light Belgian waffles covered with an assortment of fresh berries and whipped cream
900
French Toast
$4.50
Thick slices made from our homemade sourdough bread
600
Homestyle Breakfast
$6.95
Two eggs, bacon or sausage, toast, and our ever-popular hash browns
950
我们来看看示例的 XML 树:
步骤 5。 要获取名称,你首先需要找到一个 <姓名> 每个元素 节点并从中获取文本数据。这可以通过以下代码行完成:
foods = tree.xpath(".//food/name/text()")
- 。//食物 – 查找并选择XML 中任意位置的元素
- /姓名 – 选择孩子
- /文本() – 获取包含在标签。
注意: 此 食品 变量将包含 XML 文档中找到的所有食物名称的列表。
步骤 6。 让我们通过将脚本的输出打印到终端窗口来检查脚本是否有效。
for food in foods:
print (food)
这是 脚本的输出。它显示您刚刚抓取的名称。
python lxml_get_text.py
Belgian Waffles
Strawberry Belgian Waffles
Berry-Berry Belgian Waffles
French Toast
Homestyle Breakfast
结果:
恭喜,您刚刚学会了如何使用 LXML 解析 XML。以下是完整脚本:
from lxml import etree
import requests
r=requests.get('https://www.w3schools.com/xml/simple.xml')
tree = etree.XML(r.content)
foods = tree.xpath(".//food/name/text()")
for food in foods:
print (food)