Thomas J.S.: Parameter in xsl:include href verwenden

Beitrag lesen

Hallo,

ich möchte verschiedene XSL Dateien kombinieren. Die Pfade sind variabel, und sollen als Parameter von außen geliefert werden. Ich habe als Basispfad den Parameter $xslbasepath definiert, und möchte diesen nun in einem xsl:include verwenden. Probiert habe ich es so:

xsl:include
    <xsl:attribute name="href">
      <xsl:value-of select="$xslbasepath"/>/default.xsl
   </xsl:attribute>
</xsl:include>

Das wichtigste: es geht nicht.

Auch die von Thomas vorgeschlagenen Möglichkeit (<xsl:include href="{$xslbasepath}/default.xsl"/>
) kann nicht funktionieren.

Der Wert des Attributes href _muss_ eine URI sein. D.h. auch ein {$xslbasepath} wird als Teil der URI angesehen.
Wenn du versuchst Stylesheets konditional zu einbinden, ist es als würdest du z.B. in VB ein Programm schreiben, dass sich selbst beim Ausführen modifiziert.
Im Klartext: xsl:include witd zu Kompilierungszeit ausgeführt, _bevor_ die Anwendung des Stylsheets anfängt.

Du kannst etnweder miz verschiedenen mode-s arbeiten (<xsl:temlpate< name="xxx" mode="xxx"> oder mehrere Stylesheets definieren und diese je nach Bedarf inkludieren.

Grüße
Thomas