如何使用XPath获取节点的文本内容,text()和.有什么不同?
发布时间:2025-12-03 20:17
发布者:网络
浏览次数:XPath中text()仅提取元素的直接文本子节点,不包含后代元素文本;而.(配合string())返回该节点及其所有后代的合并文本字符串。

在XPath中获取节点的文本内容时,text() 和 . 都可以用来提取文本,但它们的作用方式和返回结果有明显区别。
1. text():选择节点的直接文本子节点
text() 是一个节点测试,用于选取元素的**直接文本子节点**。它不会包含后代元素中的文本。
例如,有如下HTML片段:
Hello World!使用 //div/text() 会返回两个文本节点:
- "Hello "
- "!"
注意:World 中的文本被忽略,因为它是子元素的内容,不是 div 的直接文本子节点。
2. . :选择当前节点本身(常用于string化)
点号 . 代表当前上下文节点。当与字符串函数结合使用(如 string(.) 或在取值时自动转换),它会返回该节点及其所有后代的**合并文本内容**。
Remover
几秒钟去除图中不需要的元素
304
查看详情
继续上面的例子:
使用 string(//div) 或在代码中对 //div 节点调用文本提取方法(如 lxml 或 Scrapy 中的 .extract() 后转字符串),会得到:
"Hello World!"这包括了 div 下所有层级的文本内容,不管是否被嵌套在子标签中。
关键区别总结
- text() 只获取当前元素的直接文本子节点,不包括后代元素中的文本。
- .(配合字符串上下文)获取整个节点树下的全部文本,合并为一个字符串。
- text() 可能返回多个文本片段;而 string(.) 总是返回单个字符串。
基本上就这些。根据你是否需要包含子元素的文本,来决定用哪个方式。要精确控制文本来源就用 text(),要完整内容就用 . 并转成字符串。
以上就是如何使用XPath获取节点的文本内容,text()和.有什么不同?的详细内容,更多请关注其它相关文章!
# xpath
# 文本内容
# html
# 区别
# 如何使用
# 如何用
# 有什么不同
# 有多
# 是怎样
# 就用
# 它来
# 生态系统
# 是一个
# 包含了
# 高州营销推广公司招聘
# 烟台智能网站建设价格
# 微信营销推广标题
# 沧州网站建设未来云图
# 什么网站优化排名最好
# 阳江网站推广代运营怎么样
# 黄浦专业网站建设公司
# top域名seo
# 镜湖区网站优化怎么做好
# 营口seo公司获客软件




