2012-04-13 54 views
1

我有以下的选择,其工作原理:XSLT 1 - 寻子节点,在节点具有不区分大小写的值

parent::node()/myNS:expField[myNS:Nam='NAMETOFIND']/myNS:Val 

我要的是做对myNS:Nam值不区分大小写的匹配,所以我会可以从以下任何一项选择<Val>

<expField> 
    <Nam>NAMETOFIND</Nam> 
    <Val>the value I want</Val> 
</expField> 
<expField> 
    <Nam>NameToFind</Nam> 
    <Val>the value I want</Val> 
</expField> 
<expField> 
    <Nam>nametofind</Nam> 
    <Val>the value I want</Val> 
</expField> 
<expField> 
    <Nam>nAmEtOFInD</Nam> 
    <Val>the value I want</Val> 
</expField> 

我使用XSLT 1,所以我不能使用lower-case()

回答

1

translate()会做这项工作,它不是很漂亮,但它的工作原理。如果你知道你想要处理什么语言,那就是。

+1

好的,我将如何将'translate()'工作到'[myNS:Nam ='NAMETOFIND']'?只是'[translate(myNS:Nam,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')='NAMETOFIND']'?我会尝试的。 – 2012-04-13 21:18:06

+0

是的,就是这个想法。 – biziclop 2012-04-13 21:19:05

+0

是的,那工作!我在我的XSLT的其他地方使用了'translate()',但从来没有想过在类似的节点选择器中使用它。谢谢! – 2012-04-13 21:21:08