XSLT,XPath和InStr

时间:2008-12-01 11:24:47

标签: xml xslt xpath

有没有办法找到一个值匹配的节点。

如果我有以下内容:

<competition id="100" name="Barclays Premier League"/>
<competition id="101" name="CocaCola Championship" />
<competition id="102" name="CocaCola League 1" />

鉴于字符串“Premier League”甚至是“Prem”,我如何匹配正确的节点并获得id 100.

我已经使用for-each和contains来管理它,但是效率非常低,并且不能满足我们的要求。

3 个答案:

答案 0 :(得分:14)

字符串处理不是XSLT的惊人之处,但有一些选择。

在这种情况下,您可以尝试:

//competition[contains(@name,'Prem')]

有关更多选项和详细信息,请参阅here

答案 1 :(得分:6)

使用:

<强> //competition[contains(@name, 'Prem')]/@id

在其他情况下,例如:starts-with()ends-with()(仅限XPath 2.0)可能非常有用。

答案 2 :(得分:1)

还有一个“匹配”功能,它使用正则表达式,但这只适用于XSL 2.0。