Thomas J.S.: XML mit XSLT in Javascript Transformieren

Beitrag lesen

Hallo,

Du willst für den Dokumentkonten (d.h. für das gesamte Dokument) ein Template mit 'mode' definieren??? Und wie willst du dann das Aufrufen: in welchem Template willst du ein <xsl:apply-templates select="/" mode="Zeitschrift" /> denn verwednen?

Gar nicht vom XSLT, das ist so gedacht, das es vom Parser gesetzt wird, Saxon, oder wie in meinem Fall eben, Javascript.

Also von "Aussen" quasi, damit man nur ein XSLT für verschiedene Umgebungen anwenden muss, quasi.

Aus O Reilly XSLT, Dt. Ausgabe:

[...]

Das ist alles korrekt, aber du kannst nicht für <template match="/"> ein mode schreiben (bzw. können schon, aber nützen wird dir das nichts), weil du dieses Template mit einer mode dann nicht aufrufen kannst. Denn dazu wäre ein apply-templates notwendig und du kannst nicht ein
<xsl:template match="/" mode="root">
 <xsl:apply-templates select="/" mode="root" />
</xsl:template>
schreiben (wäre nämlich recursiv).

Du kannst höchstes sowas schreiben:
<xsl:template match="/">
 xsl:choose
  <xsl:when test="$format = 'pdf'">
   <xsl:apply-templates select="wurzelelement" mode="pdf" />
  </xsl:when>
  xsl:otherwise
   <xsl:apply-templates select="wurzelelement" mode="html" />
  </xsl:otherwise>
 </xsl:choose>
</xsl:template>

Grüße
Thomas