XSLT: Taginhalt als normalen Text darstellen?

Messerjockel

Grünschnabel
Hallo, liebe Community!

Ich bin bei meinen XSLT-Programmierkenntnissen (leider recht schnell) auf völlige Ratlosigkeit gestoßen. Ich stehe vor folgendem Problem:

Ich möchte das XML-Konstrukt

<Tag>Diese <Var>Variable</Var> ist toll</Tag>

auslesen.

Die Ausgabeform sollte sein:

Diese Variable ist toll

oder alternativ

Diese <Var>Variable</Var> ist toll


Besondere Schmerzen bereitet mir der Text hinter dem Tag (<== "ist toll").
Bei mir bricht er mit

<xsl:template name="testfall">

<xsl:choose>
<xsl:when test="name() = 'Tag'">
<xsl:value-of select="node()"/>
<xsl:call-template name="testfall"/>​
</xsl:when>​
<xsl:when test="name() = 'Var'">
<i><xsl:value-of select="node()"/></i>
<xsl:call-template name="testfall"/>​
</xsl:when>​
</xsl:choose>​
</xsl:template>




leider nach"Diese Variable" ab und der Text nach dem Var-Tag fehlt!

Weiß jemand, wie ich eine meiner beiden Ausgabe-Alternativen hinbekommen kann? Oder wo evtl. eine bereits vorhandene Lösung steht? :confused:

Danke im Voraus!

Messerjockel
 
Hi.

Versuch's mal so:
XML:
<xsl:template match="//Tag">
  <xsl:apply-templates match="text()"/>
</xsl:/template>

Oder alternativ:
XML:
  <xsl:for-each select="node()">
     <xsl:choose>
       <xsl:when test="name() = 'Var'">
         <xsl:copy-of select="."/>
       </xsl:when>
       <xsl:otherwise>
         <xsl:value-of select="."/>
       </xsl:otherwise>
     </xsl:choose>
  </xsl:for-each>
Gruß
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück