Frage

Ist es möglich, XML eingebettete JavaScript haben ausgeführt in Client-Seite (Browser-basierte) XSL-Transformationen zu unterstützen? Wie wird es gemacht und wie offiziell ist es?

Microsofts XML-DOM-Objekte ermöglichen dies auf der Server-Seite (das heißt in ASP / ASP.NET).

Zur Verdeutlichung: Ich meine nicht, HTML-DOM-Scripting ausgeführt nach das Dokument umgewandelt wird, noch meine ich XSL-Transformationen initiiert von JavaScript im Browser (zB die W3Schools was Seite zeigt). Ich beziehe mich auf tatsächliche Skriptblöcke innerhalb der XSL während der Transformation befinden.

War es hilfreich?

Lösung

JavaScript für die Hilfe der Transformation einzubetten Sie verwenden können , sondern es ist begrenzt Microsofts XML-Objekte Implementierung. Hier ist ein Beispiel :

scripted.xml :

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

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

Das Ergebnis im Internet Explorer (oder wenn Sie nur MSXML verwenden, um von COM / .NET) ist:

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

Es scheint nicht die üblichen XSL-Template-Konstrukte zu unterstützen und das Hinzufügen des Wurzelknoten verursacht MSXML in eine Art von Standards-Modus zu gehen, wo es nicht funktionieren wird.

Ich bin mir nicht sicher, ob es eine gleichwertige Funktionalität in Standard XSL, aber ich kann träumen.

Andere Tipps

Ich glaube nicht, dass Sie innerhalb von XML-Dokumenten eingebetteten JavaScript-Code ausführen können. Wie, helios erwähnt, können Sie die Transformation mit Hilfe von JavaScript Vorform.

JavaScript ist in den meisten Fällen als CDATA eingebettet, die in der Regel verwendet wird nach die XSL-Transformation stattgefunden hat. Wenn ich richtig verstehe, wollen Sie in Ihrem XML eine ausführbare Datei

scroll top