Florian Neumeyer: Verständnisprobleme mit apply-templates

Hallo,

folgenden Text würde ich gerne direkt übernommen haben:
<u><i><b>1<br/>2<br/>3</b></i></u>

Mein bisheriger Ansatz:
[..]
<xsl:apply-templates select="text"/>
[..]
<xsl:template match="b">
<b>
xsl:choose
<xsl:when test="child::u|i">
<xsl:apply-templates select="child::u|i"/>
</xsl:when>
xsl:otherwise<xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
</b>
</xsl:template>
<xsl:template match="u">
<u>
xsl:choose
<xsl:when test="child::b|i">
<xsl:apply-templates select="child::b|i"/>
</xsl:when>
xsl:otherwise<xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
</u>
</xsl:template>
<xsl:template match="i">
<i>
xsl:choose
<xsl:when test="child::u|b">
<xsl:apply-templates select="child::u|b"/>
</xsl:when>
xsl:otherwise<xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
</i>
</xsl:template>

Allerdings ist mir nicht ganz klar, wie ich die <br/> Tags dargestellt bekommen, weil die bisher in der Ausgabe verständlicherweise fehlen :(

Über Tipps wäre ich sehr dankbar!

Grüße,
Flo

  1. Hallo,

    folgenden Text würde ich gerne direkt übernommen haben:
    <u><i><b>1<br/>2<br/>3</b></i></u>

    Mein bisheriger Ansatz:

    Recht viel, ist aber nicht wirklich notwendig.

    Wenn du ein umgebendes XML-Elemnt hat in dem dieses HTML steht:
    <xsl:template match="elmenetName">
     <xsl:copy-of select="child::node()" />
    </xsl:template>

    Wenn das aus irgendeinem Grund nicht möglich ist:
    <xsl:template match="u | i | b | br">
     xsl:copy
      <xsl:for-each select="@*">
       <!-- kopiert die attribute, falls vorhanden -->
       <xsl:copy />
      </xsl:for-each>
      <xsl:apply-templates />
     </xsl:copy>
    </xsl:template>

    Grüße
    Thomas

    1. Recht viel, ist aber nicht wirklich notwendig.

      Klappt prima und endlich ist meine XSL-Datei wieder übersichtlich :)
      DANKE für die schnelle Hilfe!

      Schönen Abend noch und Grüße,
      Flo