XSL喜欢还是模糊搜索?

时间:2011-08-23 21:21:52

标签: xslt foreach

是否有 SQL 模糊搜索的XSL等价物?

例如:

<xsl:for-each select="foo[foo_type like '%1%']">

3 个答案:

答案 0 :(得分:3)

不完全是,但是您有很多字符串函数,如containsstarts-with等。您可以在此处查看有关这些函数的MS'文档:

http://msdn.microsoft.com/en-us/library/ms256195.aspx

您的特定选择将是:

<xsl:for-each select="*[contains(name(),'1')]">

答案 1 :(得分:3)

使用(在select属性中)标准XPath函数contains(),如以下XPath表达式

foo[contains(foo_type, '1')]

根据具体情况,下面列出的其他标准XPath函数也可能有用

请注意ends-with()matches()tokenize()replace() 仅在XPath 2.0中可用

可以将以下XPath 1.0表达式用于与XPath 2.0函数ends-with()相同的目的:

  substring($s, string-length($s) - string-length($target) +1)
=
  $target

相当于:

ends-with($s, $target)

答案 2 :(得分:1)

在XSLT 2.0中,使用

<xsl:for-each select="foo[matches(foo_type, '1')]">

与具有相当原始和非正统模式语法的SQL不同,XSLT使用的正则表达式与Perl和大多数其他现代正则表达式方言中使用的语法非常接近。