tokenize()函数用于将字符串按分隔符分割成序列,支持正则表达式分隔符,可处理连续或首尾分隔符产生的空字符串,常用于解析XML中多值属性或元素内容,如作者、标签、颜色等,需配合string-length或normalize-space过滤空值,与substring()的“取”不同,tokenize()实现的是“分”。
XPath的
tokenize()
tokenize()
解决方案:
tokenize()
例如,
tokenize('apple,banana,orange', ',')
更复杂一点,如果你想用空格和逗号作为分隔符,你可以使用正则表达式:
tokenize('apple, banana orange', '[, ]+')
需要注意的是,
tokenize()
tokenize()
tokenize(',apple,banana,', ',')
XPath 2.0及以上版本才支持
tokenize()
XPath 1.0 中模拟
tokenize()
tokenize()
如何处理
tokenize()
在使用
tokenize()
一种方法是使用XPath表达式过滤掉空字符串。例如,你可以使用
[string-length(.) > 0]
tokenize('apple,,banana', ',')[string-length(.) > 0]
这个表达式会返回一个包含两个字符串的序列:'apple'和'banana',空字符串会被过滤掉。
另一种方法是在XPath表达式中使用
normalize-space()
tokenize(normalize-space(' apple , banana '), ',')
这个表达式会返回一个包含两个字符串的序列:'apple'和'banana',因为
normalize-space()
选择哪种方法取决于你的具体需求。如果你需要保留空字符串的位置信息,那么最好使用第一种方法。如果你只需要处理非空字符串,那么可以使用第二种方法。
tokenize()
tokenize()
substring()
tokenize()
substring()
简单来说,
tokenize()
substring()
tokenize()
substring()
举个例子,如果你想从字符串'apple,banana,orange'中提取第二个单词'banana',你可以先使用
tokenize()
tokenize('apple,banana,orange', ',')[2]
这个表达式会返回字符串'banana'。
如果你想从字符串'apple'中提取从第二个字符开始的两个字符,你可以使用
substring()
substring('apple', 2, 2)
这个表达式会返回字符串'pp'。
总结一下,
tokenize()
substring()
tokenize()
tokenize()
例如,假设你有一个包含多个作者的XML文档:
<book> <title>The Lord of the Rings</title> <authors>J.R.R. Tolkien, Peter Jackson</authors> </book>
如果你想提取所有的作者姓名,你可以使用
tokenize()
authors
tokenize(/book/authors, ', ')
这个表达式会返回一个包含两个字符串的序列:'J.R.R. Tolkien'和'Peter Jackson'。
另一个例子,假设你有一个包含多个标签的XML文档:
<article> <title>XPath Tutorial</title> <tags>xpath, xml, tutorial</tags> </article>
如果你想提取所有的标签,你可以使用
tokenize()
tags
tokenize(/article/tags, ', ')
这个表达式会返回一个包含三个字符串的序列:'xpath'、'xml'和'tutorial'。
tokenize()
<product colors="red, green, blue"> <name>T-Shirt</name> </product>
如果你想提取所有的颜色,你可以使用
tokenize()
colors
tokenize(/product/@colors, ', ')
这个表达式会返回一个包含三个字符串的序列:'red'、'green'和'blue'。
总而言之,
tokenize()
以上就是XPath的tokenize()函数如何分割字符串?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号