Thomas J.S.: unterschiedliche Transformation innerhalb von Elementen

Beitrag lesen

Hallo,

Jedoch soll die Ausgabe so aussehen, man beachte das jetzt vorhandene <br>-Tag.

<html>
<div style="font-size: 10pt;">
Ein Beitrag<br><hr>Dies ist ein Text im ersten Absatz.<br>Diese Zeile ist in einer neuen Zeile
<hr><span style="font-size:15pt;">D</span>ies ist ein Text im zweiten Absatz.<br>Diese Zeile ist in einer neuen Zeile
<hr>Dies ist ein Text im dritten Absatz.<br>Diese Zeile ist in einer neuen Zeile
</div>
</html>

die lösung ist etwas "tricky": (ich habe auch dein html etwas verbesserst und dein xsl umgeschrieben)
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" indent="yes" encoding="ISO-8859-1" omit-xml-declaration="yes" />

<xsl:template match="/">
<html>

<body>

<xsl:for-each select="Beitrag">
<div>
<xsl:attribute name="style">font-size: <xsl:value-of select="Format/Schriftgroesse" /><xsl:value-of select="Format/Schriftgroesse/@Typ" />;</xsl:attribute>
Ein Beitrag<br />
<xsl:apply-templates select="Absaetze" />
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>

<!-- Anzeige der Absaetze -->
<xsl:template match="Absaetze">
<xsl:apply-templates />
</xsl:template>

<xsl:template match="Absatz">
<hr />
xsl:choose
   <xsl:when test="@BuchstabeEins">
      <span>
      <xsl:attribute name="style">font-size:<xsl:value-of select="ancestor::Beitrag/Format/Schriftgroesse + @BuchstabeEins" /><xsl:value-of select="ancestor::Beitrag/Format/Schriftgroesse/@Typ" />;</xsl:attribute>
      <xsl:value-of select="substring(.,1,1)" />
      </span>
      <xsl:value-of select="substring(text()[1],2)"/>
      <xsl:apply-templates select="text()[position() != 1] | Return"/>
   </xsl:when>
   xsl:otherwise
      <xsl:apply-templates />
   </xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="Return">
<br />
</xsl:template>

</xsl:stylesheet>

---------------------

hoffe es hilft dir weiter

grüße
thomas