码迷,mamicode.com
首页 > 其他好文 > 详细

Xpath表达式text()和string()的用法和区别

时间:2021-04-15 12:43:34      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:lxml   字符   lang   blank   记忆   一个   children   span   数据   

获取结点下字符串

text() selects all text node children of the context node

text()获取当前结点下的子文本结点.(不是获取后裔结点的文本结点)

注意,text()不是函数,是文本结点,文本结点从属于其父结点,所以./text()只能获取位于其子节点位置的文本结点,不会获取位于其后裔结点位置的文本结点,想要获取一个标签下的所有文本数据,就需要用.//text()

string($arg) : DOC 获取当前结点下的所有文本内容的字符串.具体用法在DOC中有,$args其中一种值是xpath表达式,函数返回xpath表达式所选结点下面的所有文本内容组成的字符串,就像是在浏览器中看到的那样.

简单记忆就是text()获取的是一个字符串列表,string()获取的是字符串.

例子

from lxml import etree

st = ‘‘‘
<html>
<body>
<div>
div的文本结点
<p>p标签的文本</p>
<a href=""><span>文本</span> 链接</a>
<span>span</span>
</div>
</body>
</html>
‘‘‘
tree = etree.HTML(st)
print(tree.xpath(‘//div//text()‘))

# 结果
# [‘\ndiv的文本\n‘, ‘p标签的文本‘, ‘\n‘, ‘文本‘, ‘ 链接‘, ‘\n‘, ‘span‘, ‘\n‘]

print(tree.xpath(‘string(//div)‘))
# 结果
#
#div的文本
#p标签的文本
#文本 链接
#span
#

Xpath表达式text()和string()的用法和区别

标签:lxml   字符   lang   blank   记忆   一个   children   span   数据   

原文地址:https://www.cnblogs.com/bugs-killer/p/14660640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!