通过Xpath解析尝试多种方法提取文本

在这里插入图片描述

from lxml import etree

# XML文档内容
xml_data = '''
<root>
  <element attribute="value1">Text 1</element>
  <element attribute="value2">Text 2</element>
  <element attribute="value3">Text 3</element>
</root>
'''

etree = etree.fromstring(xml_data)

etree = etree.HTML(html_data)
['Text 1']

etree.xpath('//element[@attribute="value1"]/text()')


etree.xpath('//element/text()')[0]

etree.xpath('./element/text()')[0]

etree.xpath('/root/element/text()')[0]

etree.xpath('/root/element[1]/text()')   # 注意解析特殊:索引从1开始,不是0

etree.xpath('/root/element[position()=1]/text()')


etree.xpath('/root/element[position()=1]/..')[0].tag           # 当前element 的父节点为'root'

# ************* 不能这么写,直接从值进行定位,eg://element[text()="Text 3"]  *****************
etree.xpath('//element[text()="Text 3"]/..')[0].tag  # 选择具有文本内容为 "Text 3" 的父节点


etree.xpath('/root/element[position()=1]/text()/..')[0].tag   # 当前文本 的父节点为'element'

# 假设要获取所有文本,就不用多说了吧:

etree.xpath('//element/text()')
etree.xpath('./element/text()')
etree.xpath('/root/element/text()')

['Text 1', 'Text 2', 'Text 3']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值