Pregunta

Es posible tener XML-JavaScript incrustado ejecutado para ayudar en el lado del cliente (navegador) basado en transformaciones XSL?¿Cómo está hecho y cómo oficial es?

Microsoft XML DOM objetos permiten que esta en el lado del servidor (es decir,en ASP/ASP.NET).

Aclaración:No me refiero a HTML DOM scripting realizado después de el documento se transforma, ni tampoco me refiero a las transformaciones XSL iniciado por JavaScript en el navegador (por ejemplo,lo que el W3Schools página muestra).Me refiero a la secuencia real bloques que se encuentran dentro de la XSL durante la transformación.

¿Fue útil?

Solución

Para incrustar JavaScript para la ayuda de transformación puede utilizar <xsl:script>pero es limitado para Microsoft XML de objetos de la aplicación.He aquí un ejemplo:

scripted.xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="scripted.xsl"?>
<data a="v">
    ding dong
</data>

secuencias de comandos.xsl:

<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:script implements-prefix="local" language="JScript"><![CDATA[

    function Title()
    {
        return "Scripted";
    }

    function Body(text)
    {
        return "/" + text + "/";
    }

]]></xsl:script>
<head>
    <title><xsl:eval>Title()</xsl:eval></title>
</head>
<body>
    <xsl:for-each select="/data"><xsl:eval>Body(nodeTypedValue)</xsl:eval></xsl:for-each>
</body>
</html>

El resultado en Internet Explorer (o si usted sólo tiene que utilizar MSXML desde COM/.NET) es:

<html>
<head>
    <title>Scripted</titlte>
</head>
<body>
    /ding dong/
</body>
</html>

No parecen apoyar la costumbre plantilla XSL construcciones y agregar el nodo raíz las causas de MSXML para ir a algún tipo de normas, de modo que no va a funcionar.

No estoy seguro de si hay alguna funcionalidad equivalente en el estándar XSL, pero puedo soñar.

Otros consejos

Yo no creo que se pueda ejecutar código JavaScript embebido dentro de los documentos XML.Como, helios se mencionó, puede preforma de la transformación mediante JavaScript.

JavaScript está incrustado como CDATA en la mayoría de los casos, que se utiliza generalmente después de la transformación XSL ha tenido lugar.Si entiendo correctamente, usted quiere tener un ejecutable <script> tag in your XML.

Usted podría utilizar XSL los parámetros de las plantillas y si usted necesita un mayor control sobre sus transformaciones.Puede establecer estos valores en sus hojas y, a continuación, pasar a exec().Mozilla soporta configuración de los parámetros de en XSL, pero no estoy seguro acerca de otros navegadores.

También, cross-browser JavaScript/XSLT es un dolor en el cuello. Mozilla JavaScript/XSLT interfaz es muy distinto Es decir la, por lo que puede depender de un navegador independiente de la biblioteca como jQuery XSLT.

Sí.Es explorador dependiente, pero se puede utilizar Javascript.Hay un pequeño pero práctico tutorial en w3schools.com.Es parte de la transformación XSLT tutorial.

La página:

http://www.w3schools.com/xsl/xsl_client.asp

El XSLT tutorial:

http://www.w3schools.com/xsl/default.asp

Que sitio va a ser de más ayuda que yo.Buena suerte!

Dudo que usted encontrará lo que usted está buscando si "oficial" significa "basado en estándares." Lo que usted describe es un agente de usuario lenguaje de secuencias de comandos para ser analizado y ejecutado durante una hoja de estilo en el análisis.Si su objetivo es simplificar XSLT haciendo el trabajo sucio en Javascript, que puede ser mejor tratando de generar el XSLT en javascript y, a continuación, utilizando un contenedor de clase para analizar el resultado a través del navegador de la propia XSLT analizador.

Este es, por supuesto, mucho más trabajo del que probablemente firmado, pero si estás convencido de que quieres hacerlo, me gustaría aprovechar mirar John Resig de Javascript de la Micro-Plantillas dinámicamente plantilla tienda-friendly XSLT en javascript.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top