Pergunta

É possível ter XML, JavaScript incorporado executada para ajudar no lado do cliente (navegador) baseado em transformações XSL?Como é feito e como oficial é?

Microsoft XML DOM objetos permitem que esta no lado do servidor (por exemplo,no ASP/ASP.NET).

Esclarecimento:Eu não quero dizer que o HTML DOM scripting realizada depois de o documento é transformado, nem posso dizer transformações XSL iniciado pelo JavaScript no navegador (por exemplo,o que o W3Schools página mostra).Refiro-me ao real blocos de script localizado dentro do XSL durante a transformação.

Foi útil?

Solução

Para incorporar o JavaScript para o auxílio de transformação que você pode usar <xsl:script>, mas ele é limitado para Microsoft XML objetos de implementação.Aqui está um exemplo:

scripted.xml:

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

script.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>

O resultado no Internet Explorer (ou se você apenas usar o MSXML de COM/.NET):

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

Ele não aparecer para apoiar o costume modelo XSL construções e adicionar o nó raiz faz com que o MSXML para ir em algum tipo de modo de padrões onde não vai funcionar.

Eu não tenho certeza se há alguma funcionalidade equivalente no padrão XSL, mas eu posso sonhar.

Outras dicas

Eu não acho que você pode executar código JavaScript incorporado dentro de documentos XML.Como, helios mencionado, você pode executar a transformação usando JavaScript.

JavaScript é incorporado como CDATA na maioria dos casos, o que geralmente é usado depois de a transformação XSL tem tomado lugar.Se eu entendi corretamente, você deseja ter um executável <script> tag in your XML.

Você pode usar XSL parâmetros e modelos se você precisa de um maior controle sobre suas transformações.Você pode definir esses valores em seu XSLT e, em seguida, passá-los para exec().Mozilla suporta configuração de parâmetros em XSL, mas eu não tenho certeza sobre outros navegadores.

Também, cross-browser, Seo/XSLT é uma dor no pescoço. Mozilla JavaScript/XSLT interface é muito diferente do que IE, então você pode querer depender de um navegador independente de biblioteca como jQuery XSLT.

Sim.É browser dependentes, mas você pode usar Javascript.Há um pequeno mas prático tutorial sobre w3schools.com.É parte do tutorial XSLT.

Página:

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

O XSLT tutorial:

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

Esse site vai ser mais útil do que a mim mesmo.Boa sorte!

Eu duvido que você vai encontrar o que você está procurando se "oficial" significa "baseado em padrões." O que você descreve é um agente de utilizador linguagem de script para ser analisado e executado durante uma folha de estilo de análise.Se o seu objetivo é simplificar o XSLT fazendo o trabalho sujo em Javascript, que pode ser melhor tentar gerar o XSLT em javascript e, em seguida, usando uma classe de wrapper para analisar o resultado no meio do navegador do próprio analisador XSLT.

Este é, naturalmente, um trabalho muito mais do que você, provavelmente, assinado em, mas se você estiver convencido de que você deseja fazer, eu gostaria de tomar olhar John Resig Javascript do Micro-Modelos dinamicamente loja modelo-friendly XSLT em javascript.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top