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

通过Xpath解析尝试多种方法提取文本_第1张图片

from lxml import etree

# XML文档内容
xml_data = '''

  Text 1
  Text 2
  Text 3

'''

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

你可能感兴趣的:(python)