XPath的text()函数用于提取节点的文本内容,不包含标签或属性。1. 基本用法:通过/book/title/text()可提取指定节点的文本,如获取书名“The Lord of the Rings”。2. 提取所有文本:使用/book//text()可获取book下所有后代文本节点,返回包含书名、作者、价格等文本的列表。3. 结合谓语精确匹配:通过/bookstore/book[author/text()='J.R.R. Tolkien']/title/text()可筛选特定作者并提取对应书名。4. 模糊匹配:使用contains()函数如/bookstore/book[contains(author/text(), 'Tolkien')]/title/text()实现部分文本匹配。5. 处理混合内容:对于<p>This is <b>bold</b> text.</p>,/p/text()仅返回直接子文本节点“This is ”和“ text.”,而/p//text()返回所有后代文本节点,包括“bold”。6. 合并文本:使用string(/p)可将所有文本合并为单一字符串“This is bold text.”。掌握text()函数及其与谓语、contains()、//和string()的组合,可高效提取结构化文档中的纯文本信息。

XPath的
text()
提取文本内容是XPath的常见需求,下面展开说明如何使用
text()
XPath的
text()
.//text()
例如,假设你有以下XML文档:
<book>
<title>The Lord of the Rings</title>
<author>J.R.R. Tolkien</author>
<price currency="USD">29.99</price>
</book>要提取书名,你可以使用以下XPath表达式:
/book/title/text()
这个表达式会返回 "The Lord of the Rings"。
再比如,提取作者名:
/book/author/text()
返回 "J.R.R. Tolkien"。
如果想提取所有
book
/book//text()
注意
//
在实际应用中,
text()
contains()
text()
[]
假设有以下XML文档:
<bookstore>
<book>
<title>The Lord of the Rings</title>
<author>J.R.R. Tolkien</author>
</book>
<book>
<title>Pride and Prejudice</title>
<author>Jane Austen</author>
</book>
</bookstore>要提取J.R.R. Tolkien的书名,可以使用以下XPath表达式:
/bookstore/book[author/text()='J.R.R. Tolkien']/title/text()
这个表达式首先选取
bookstore
book
[author/text()='J.R.R. Tolkien']
book
book
title
另外,你还可以使用
contains()
/bookstore/book[contains(author/text(), 'Tolkien')]/title/text()
这个表达式会选取
author
book
title
需要注意的是,在使用谓语时,确保谓语中的XPath表达式能够正确选取到你想要匹配的节点。如果谓语中的XPath表达式选取不到任何节点,那么整个XPath表达式的结果将为空。
混合内容指的是既包含文本又包含子节点的节点。处理混合内容时,
text()
假设有以下HTML片段:
<p>
This is <b>bold</b> text.
</p>要提取
p
/p/text()
这个表达式会返回一个包含两个文本节点的列表: "This is " 和 " text."。注意,
<b>
p
如果想要提取包括
<b>
//text()
/p//text()
这个表达式会返回一个包含三个文本节点的列表: "This is "、"bold" 和 " text."。
处理混合内容时,你需要根据实际需求选择合适的XPath表达式。如果只需要提取直接文本子节点,可以使用
text()
//text()
此外,还可以结合
string()
string(/p)
这个表达式会返回 "This is bold text."。
string()
p
理解并熟练运用
text()
以上就是XPath的text()函数的作用是什么?如何使用?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号