首页 > 其他 > 详细

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

时间:2021-04-15 09:14:40      阅读:22      评论:0      收藏:0      [点我收藏+]

获取结点下字符串

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()的用法和区别

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!