Hallo,
Dann wieder zum Anfang zurueck:
Deklariere die JS-Variable und instanziiere ActiveX-Objekte fuer die XML- und die XSL-Datei. Uebergib die JS-Variable ueber das DOM an das XSL-Objekt und fuehre die Transformation aus. Dazu hatte ich auf das Beispiel aus dem anderen Thread verwiesen.
Hier mal ein Beispiel auf der Basis des genannten Codes. test.htm hat einen JS-Block mit der Variable xyz. test.xml und test.xsl werden jeweils in ActiveX-Objekte ueberfuehrt. Der Wert von xyz wird an das erste xsl:variable-Element in test.xsl uebergeben (dort als "Dummy" mit "..." vorhanden) und danach wird die Transformation ausgefuehrt und erst der Inhalt von wurzel/test ausgegeben und dann auf $xyz=1 geprueft und im Erfolgsfall die "Hurra!"-Meldung ausgegeben.
test.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<wurzel>
<test>Hallo Welt!</test>
</wurzel>
test.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html401/loose.dtd"
encoding="ISO-8859-1"
version="4.01"
media-type="text/html"
indent="yes"
/>
<xsl:variable name="xyz">...</xsl:variable>
<xsl:template match="/">
<html>
<head>
<title>Test by TM 08/02</title>
</head>
<body>
<xsl:value-of select="wurzel/test" /><br />
<xsl:if test="$xyz=1">
xsl:textHurra! $xyz hat den Wert </xsl:text><xsl:value-of select="$xyz" />
</xsl:if>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
test.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 08/02</title>
<script language="JavaScript" type="text/javascript">
<!--
function Test()
{
var xyz=1, xmlinput, xslinput, obj, htmloutput;
xmlinput=new ActiveXObject("MSXML2.DOMDocument.3.0");
xmlinput.async=false;
xmlinput.load("test.xml");
xslinput=new ActiveXObject("MSXML2.DOMDocument.3.0");
xslinput.async=false;
xslinput.load("test.xsl");
obj=xslinput.documentElement.getElementsByTagName("xsl:variable");
obj[0].firstChild.nodeValue=xyz;
htmloutput=xmlinput.transformNode(xslinput.documentElement);
document.getElementsByTagName("body")[0].innerHTML=htmloutput;
}
//-->
</script>
</head>
<body onload="Test()">
</body>
</html>
Ergebnis:
Hallo Welt!
Hurra! $xyz hat den Wert 1
MfG, Thomas