6

有没有办法找到与部分值匹配的节点。

如果我有以下情况:

<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 进行了管理,但这非常低效,并且无法满足我们的要求。

4

3 回答 3

14

字符串处理并不是 XSLT 擅长的,但有一些选择。

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

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

有关更多选项和详细信息,请参见此处

于 2008-12-01T11:33:19.187 回答
6

采用:

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

在其他情况下,诸如:starts-with()ends-with()(仅限 XPath 2.0)之类的函数可能很有用。

于 2008-12-01T13:31:44.143 回答
1

还有一个“匹配”函数,它使用正则表达式,但这仅在 XSL 2.0 中可用。

于 2008-12-01T12:38:32.627 回答