Czy istnieje odpowiednik xsl dla sql, np. lub wyszukiwanie rozmyte?xsl podobne lub rozmyte wyszukiwanie?
na przykład:
<xsl:for-each select="foo[foo_type like '%1%']">
Czy istnieje odpowiednik xsl dla sql, np. lub wyszukiwanie rozmyte?xsl podobne lub rozmyte wyszukiwanie?
na przykład:
<xsl:for-each select="foo[foo_type like '%1%']">
Niezupełnie, ale trzeba wiele funkcji łańcuchowych, jak contains
, starts-with
, etc.można znaleźć w dokumentacji MS”na tych funkcjach tutaj:
http://msdn.microsoft.com/en-us/library/ms256195.aspx
Twój szczególności wybierz byłoby coś jak:
<xsl:for-each select="*[contains(name(),'1')]">
Wszystkie dobre odpowiedzi, to jest to, co skończyło się przy użyciu. Dziękuję Ci! –
Nie ma za co. Miło słyszeć, że rozwiązałeś swój problem! –
użytkowania (w atrybucie select
) standardowej funkcji XPath contains()
jak w po wyrażeniu XPath::
foo[contains(foo_type, '1')]
zależności od konkretnego przypadku, inne standardowe funkcje XPath, wymienione poniżej, mogą być również użyteczne:
Należy pamiętać, że ends-with()
, matches()
, tokenize()
i replace()
są dostępne tylko w XPath 2.0.
Można użyć następującego wyrażenia XPath 1.0 w tym samym celu, co XPath 2.0 funkcja ends-with()
:
substring($s, string-length($s) - string-length($target) +1)
=
$target
odpowiada:
ends-with($s, $target)
XSLT 2.0 użyciu
<xsl:for-each select="foo[matches(foo_type, '1')]">
przeciwieństwie SQL, która ma raczej prymitywne i niekonwencjonalne składni wzór, wykorzystuje XSLT wyrażenia regularne, które są bardzo zbliżone do składni używanej w Perlu i większości innych współczesnych dialektów regex.
Dziękuję za edycję, @Michael Kay. +1 dla tej odpowiedzi. –
Dobre pytanie, +1. Zobacz moją odpowiedź na wyrażenie XPath, którego należy użyć, i dla wielu standardowych funkcji XPath na łańcuchach, które mogą się przydać w podobnych przypadkach jak twoje. :) –