Thomas Meinike: JavaScript Variable in XSL übergeben

Beitrag lesen

Hallo,

Kann vielleicht noch jemand das mit dem DOM erklären?

Schau Dir mein Beispiel mit dem Datum an. In der XSL-Datei gibt es eine leere xsl:variable. Diese wird vor dem Prozessieren mit einem Wert belegt.

Im XSL-Dokument auf Root-Level (noch vor dem ersten xsl:template) definieren:

<xsl:variable name="varname">...</xsl:variable>

Ein HTML-Dokument mit JavaScript-Block erstellen:

xmlfile="test.xml";
    xslfile="test.xsl";

// XML laden
    xmlinput=new ActiveXObject("MSXML2.DOMDocument");
    xmlinput.async=false;
    xmlinput.load(xmlfile);

// XSL laden
    xslinput=new ActiveXObject("MSXML2.DOMDocument");
    xslinput.async=false;
    xslinput.load(xslfile);

// xsl:variable-Definitionen
    obj=xslinput.documentElement.getElementsByTagName("xsl:variable");
      obj[0].firstChild.nodeValue=xmlfile;

// generierten HTML-Code ausgeben
    htmloutput=xmlinput.transformNode(xslinput.documentElement);
    // htmloutput geeignet ausgeben

xmlinput bzw. xslinput beinhalten die DOM-Trees der beiden Dokumente. Vor der Verarbeitung wird im XSL-Tree der Wert der ersten xsl:variable im Dokument verändert (hier auf den Wert xmlfile, also den aktuellen XML-Dateinamen gesetzt).

MfG, Thomas