
filtrar tabla usando un parametro solicitado al usuario
Publicado por fernando (1 intervención) el 04/03/2014 13:30:05
Hola a todos, os escribo porque quiero terminar un proyecto y estoy atascado,
resulta que tengo un archivo xml y otro xsl, en el xsl cargo una tabla con todos los datos del xml, hasta aquí todo bien, el problema es el siguiente, no quiero que se muestren todos los datos, solo los que cumplan una condición, aqui vamos bien, ya que lo controlo con un xsl:if y lo que no consigo que esa condición sea un valor solicitado al usuario (ya sea por un textbox o por msgbox, o lo que sea), para hacer pruebas me he creado la variable:
<xsl:variable name="name" select= "1234" />
y en el if hago esto:
<xsl:if test="@nombre=$name"> ........... </xsl:if>
Vale, así funciona y solo me muestra los datos cuyo nombre sea 1234. Pero yo necesito que esa variable sea un dato introducido por teclado, por lo que solo se me ocurre hacerlo en javascript, por lo que me hago una función javascript, por último la estoy haciendo así:
msxsl:script language="JavaScript" implements-prefix ="js">
<![CDATA[
function prueba()
{
var mensaje = "1234";
return mensaje;
}
]]>
</msxsl:script>
y luego la intento asignar a la variable xsl así:
<xsl:variable name="name" select= "js:prueba()" />
pero no funciona, he probado así:
<xsl:variable name="name" select= js:prueba() />
así:
<xsl:variable name="name" select= "$js:prueba()" />
así:
<xsl:variable name="name" select= prueba() />
y un largo etc, y me suele dar errores o de:
Error al cargar la hoja de estilo: El procesamiento de una hoja de estilo XSLT ha fallado.
o
Error durante la transformación XSLT: Se ha llamado a una función de extensión XPath desconocida.
Llevo días y no doy con la tecla y no me creo que no se pueda hacer, no puedo usar php ni lenguajes similares ya que donde se va a ejecutar no hay esos recursos, ¿alguna idea?
Muchas gracias por adelantado.
resulta que tengo un archivo xml y otro xsl, en el xsl cargo una tabla con todos los datos del xml, hasta aquí todo bien, el problema es el siguiente, no quiero que se muestren todos los datos, solo los que cumplan una condición, aqui vamos bien, ya que lo controlo con un xsl:if y lo que no consigo que esa condición sea un valor solicitado al usuario (ya sea por un textbox o por msgbox, o lo que sea), para hacer pruebas me he creado la variable:
<xsl:variable name="name" select= "1234" />
y en el if hago esto:
<xsl:if test="@nombre=$name"> ........... </xsl:if>
Vale, así funciona y solo me muestra los datos cuyo nombre sea 1234. Pero yo necesito que esa variable sea un dato introducido por teclado, por lo que solo se me ocurre hacerlo en javascript, por lo que me hago una función javascript, por último la estoy haciendo así:
msxsl:script language="JavaScript" implements-prefix ="js">
<![CDATA[
function prueba()
{
var mensaje = "1234";
return mensaje;
}
]]>
</msxsl:script>
y luego la intento asignar a la variable xsl así:
<xsl:variable name="name" select= "js:prueba()" />
pero no funciona, he probado así:
<xsl:variable name="name" select= js:prueba() />
así:
<xsl:variable name="name" select= "$js:prueba()" />
así:
<xsl:variable name="name" select= prueba() />
y un largo etc, y me suele dar errores o de:
Error al cargar la hoja de estilo: El procesamiento de una hoja de estilo XSLT ha fallado.
o
Error durante la transformación XSLT: Se ha llamado a una función de extensión XPath desconocida.
Llevo días y no doy con la tecla y no me creo que no se pueda hacer, no puedo usar php ni lenguajes similares ya que donde se va a ejecutar no hay esos recursos, ¿alguna idea?
Muchas gracias por adelantado.
Valora esta pregunta


0