是否有 SQL 或模糊搜索的XSL等价物?
例如:
<xsl:for-each select="foo[foo_type like '%1%']">
答案 0 :(得分:3)
不完全是,但是您有很多字符串函数,如contains
,starts-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函数也可能有用:
<强> starts-with()
强>
<强> ends-with()
强>
<强> substring()
强>
<强> translate()
强>
<强> matches()
强>
<强> replace()
强>
<强> tokenize()
强>
请注意,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和大多数其他现代正则表达式方言中使用的语法非常接近。