Hallo,
Mein Verständnisproblem besteht darin, dass ich die Variable ja an die xml-datei übergebe, darin damit aber nix anfangen kann, xml ist ja nur eine Sprache zur Erfassung einer Datenstruktur, also sollte es da doch kaum möglich, ne Variable abzufangen und an die xsl weiter zugeben, so wie: <?xml-stylesheet type="text/xsl" href="../scripts/tab.xsl?admin=yes" ?
Uebergib den Parameter an das XSL-Stylesheet, die XSLT-Prozessoren bieten dafuer ueblicherweise [Kommandozeilen-]Optionen an.
Beispiel:
mini.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<bla>
<blub>123</blub>
</bla>
mini.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="blablub"/><!-- definiert den zu uebernehmenden Parameter -->
<xsl:template match="/">
<html><head><title>Test by TM 12/04</title></head><body>
<p><xsl:value-of select="bla/blub"/><xsl:value-of select="$blablub"/></p>
</body></html>
</xsl:template>
</xsl:stylesheet>
Mit dem von mir gern verwendeten XMLStarlet funktioniert die Transformation mit Parameter[n] so:
xml tr mini.xsl -s blablub=456 mini.xml > mini.htm
Das relevante Ergebnis lautet: ...<p>123456</p>...
wobei 123 aus dem blub-Element stammt und 456 der blablub-Parameterwert ist.
Beispiele fuer Client-seitige Transformationen mit JS finden sich im Archiv.
MfG, Thomas