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')

这不是很理想,因为它不处理重音字符或不同的字符串文化(这尤其不幸,因为您要查找的值包含重音字符),但很多时候它是唯一的选择。