2.我试过包含(翻译( “ABCEDF ......”, “ABCDEF ......”), “案例insentive字符串”)]” 太失败了。
写这个正确的方法是:
/root/book[contains(translate(., $vUpper, $vLower),
translate($vCaseInsentiveString, $vUpper, $vLower)
)
]
其中$vUpper
和$vLower
被定义为(应由取代)的字符串:
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
和
'abcdefghijklmnopqrstuvwxyz'
和$vCaseInsentiveString
被定义为(应被替换为)特定的不区分大小写的字符串。
例如,给定下面的XML文档:
<authors>
<author>
<name>Victor Hugo & Co.</name>
<nationality>French</nationality>
</author>
<author period="classical" category="children">
<name>J.K.Rollings</name>
<nationality>British</nationality>
</author>
<author period="classical">
<name>Sophocles</name>
<nationality>Greek</nationality>
</author>
<author>
<name>Leo Tolstoy</name>
<nationality>Russian</nationality>
</author>
<author>
<name>Alexander Pushkin</name>
<nationality>Russian</nationality>
</author>
<author period="classical">
<name>Plato</name>
<nationality>Greek</nationality>
</author>
</authors>
以下XPath表达式(由对应的字符串替代变量):
/*/author/name
[contains(translate(., $vUpper, $vLower),
translate('lEo', $vUpper, $vLower)
)
]
选择该元件 :
<name>Leo Tolstoy</name>
说明:的函数的两个参数被转换为较低的情况下,然后进行比较。
好问题,+1。查看我的答案以获得完整的解答,解释和示例。 :) – 2011-01-29 17:16:10