¿Hay algún equivalente xsl de sql como o búsqueda difusa?xsl me gusta o búsqueda difusa?
por ejemplo:
<xsl:for-each select="foo[foo_type like '%1%']">
¿Hay algún equivalente xsl de sql como o búsqueda difusa?xsl me gusta o búsqueda difusa?
por ejemplo:
<xsl:for-each select="foo[foo_type like '%1%']">
exactamente, pero tiene una gran cantidad de funciones de cadena, como contains
, starts-with
, etc.Se puede ver la documentación de MS' en estas funciones aquí:
http://msdn.microsoft.com/en-us/library/ms256195.aspx
Su particular, seleccione sería algo así como:
<xsl:for-each select="*[contains(name(),'1')]">
Todas las buenas respuestas, esto es lo que terminé usando sin embargo. ¡Gracias! –
De nada. Me alegra oír que resolvió su problema! –
Uso (en el atributo select
) la función XPath estándar contains()
como en siguiente expresión de XPath:
foo[contains(foo_type, '1')]
Dependiendo del caso concreto, otras funciones XPath estándar, como se enumeran a continuación, puede también ser útil:
hacer la nota que ends-with()
, matches()
, tokenize()
y replace()
están disponibles sólo en XPath 2.0.
Se puede usar la siguiente expresión XPath 1.0 para el mismo propósito que XPath 2.0 función ends-with()
:
substring($s, string-length($s) - string-length($target) +1)
=
$target
es equivalente a:
ends-with($s, $target)
En XSLT 2.0, utilice
<xsl:for-each select="foo[matches(foo_type, '1')]">
diferencia de SQL, que tiene una sintaxis patrón bastante primitiva y poco ortodoxo, usos XSLT expresiones regulares que están muy cerca de la sintaxis usada en Perl y la mayoría de los otros dialectos de expresiones regulares modernas.
Gracias por la edición, @Michael Kay. +1 para esta respuesta. –
Buena pregunta, +1. Vea mi respuesta para la expresión XPath que necesita usar y para una serie de funciones estándar de XPath en cadenas que pueden ser útiles en casos similares a los suyos. :) –