Esiste un equivalente xsl di sql come o una ricerca fuzzy ?ricerca xsl like o fuzzy?
ad esempio:
<xsl:for-each select="foo[foo_type like '%1%']">
Esiste un equivalente xsl di sql come o una ricerca fuzzy ?ricerca xsl like o fuzzy?
ad esempio:
<xsl:for-each select="foo[foo_type like '%1%']">
esattamente, ma si ha un sacco di funzioni di stringa, come contains
, starts-with
, etc.È possibile vedere la documentazione MS' su queste funzioni qui:
http://msdn.microsoft.com/en-us/library/ms256195.aspx
vostro particolare di selezione sarebbe qualcosa di simile:
<xsl:for-each select="*[contains(name(),'1')]">
Tutte le buone risposte, questo è quello che ho finito per usare però. Grazie! –
Prego. Felice di averti sentito risolvere il tuo problema! –
Usa (l'attributo select
) la funzione XPath standard di contains()
come in seguente espressione XPath:
foo[contains(foo_type, '1')]
seconda del caso concreto, altre funzioni XPath standard, come indicato di seguito, può anche essere utile:
Do atto cheends-with()
, matches()
, tokenize()
e replace()
sono disponibili solo in XPath 2.0.
È possibile utilizzare la seguente espressione XPath 1.0 per lo stesso scopo di XPath 2.0 funzione ends-with()
:
substring($s, string-length($s) - string-length($target) +1)
=
$target
è equivalente a:
ends-with($s, $target)
In XSLT 2.0, utilizzare
<xsl:for-each select="foo[matches(foo_type, '1')]">
differenza SQL, che ha una sintassi modello piuttosto primitivo e non ortodosso, usi XSLT espressioni regolari che sono molto vicine alla sintassi usata in Perl e nella maggior parte degli altri dialetti regex moderni.
Grazie per la modifica, @ Michael Kay. +1 per questa risposta. –
Buona domanda, +1. Vedere la mia risposta per l'espressione XPath che è necessario utilizzare e per un certo numero di funzioni XPath standard su stringhe che possono tornare utili in casi simili come i propri. :) –