PHP XPath 嵌套大写函数无法按预期工作
PHP XPath nested upper-case function does not work as expected
虽然第一个 XPath 将匹配包含我的示例文本 'Macedonië' 的值元素,但第二个不会:
value[contains(text(), 'Macedoni')]
value[contains(upper-case(text()), 'MACEDONI')]
<value>Macedonië</value>
这里有我遗漏的基本规则吗?函数嵌套在 XPath 中不是这样工作的吗?
Gr.Viller
如评论中所述,XPath 1.0 没有 upper-case()
函数。
XPath 1.0 中的一个常用技巧是使用 translate()
函数在大小写之间进行转换:
translate(text(), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
这不是很理想,因为它不处理重音字符或不同的字符串文化(这尤其不幸,因为您要查找的值包含重音字符),但很多时候它是唯一的选择。
虽然第一个 XPath 将匹配包含我的示例文本 'Macedonië' 的值元素,但第二个不会:
value[contains(text(), 'Macedoni')]
value[contains(upper-case(text()), 'MACEDONI')]
<value>Macedonië</value>
这里有我遗漏的基本规则吗?函数嵌套在 XPath 中不是这样工作的吗?
Gr.Viller
如评论中所述,XPath 1.0 没有 upper-case()
函数。
XPath 1.0 中的一个常用技巧是使用 translate()
函数在大小写之间进行转换:
translate(text(), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
这不是很理想,因为它不处理重音字符或不同的字符串文化(这尤其不幸,因为您要查找的值包含重音字符),但很多时候它是唯一的选择。