dude: html in xsl variable abspeichern

hallo, ich möchte gerne wissen wie man html-code in xsl-variablen übergibt.
die daten werden alle richtig ausgegeben, nur alles was html-code ist wird einfach nicht wiedergegeben.
deshalb habe ich keine zeilenumbrüche und keine tabelle.
(bin blutiger anfänger, deshalb sieht es vielleicht etwas merkwürdig aus?!)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
 <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:variable name="termin"><xsl:apply-templates select="Termin/TerminInfos"/></xsl:variable>
 <xsl:variable name="beginn"><xsl:apply-templates select="Termin/TerminInfos/Beginn/Datum"/></xsl:variable>
 <xsl:variable name="ende"><xsl:apply-templates select="Termin/TerminInfos/Ende/Datum"/></xsl:variable>
 <xsl:variable name="beginn-uhrzeit"><xsl:apply-templates select="Termin/TerminInfos/Beginn/Uhrzeit"/></xsl:variable>
 <xsl:variable name="ende-uhrzeit"><xsl:apply-templates select="Termin/TerminInfos/Ende/Uhrzeit"/></xsl:variable>
 <xsl:variable name="dauer"><xsl:apply-templates select="Termin/TerminInfos/Dauer"/></xsl:variable>
 <xsl:variable name="teilnehmer"><xsl:apply-templates select="Termin/TeilnehmerListe"/></xsl:variable>
 <xsl:variable name="detailsvar"><xsl:call-template name="details"/></xsl:variable>

<xsl:template match="Termin">
<html>
 <body>
  <xsl:value-of select="$detailsvar"/>
  <br/>
  <xsl:value-of select="$dauer"/>
  <br/>
  <xsl:value-of select="$termin"/>
  <br/>
  <xsl:value-of select="$teilnehmer"/>
  <br/><br/>
 </body>
</html>
</xsl:template>

<xsl:template name="details">
  <table border="1">
   <tr>
    <td></td><td>Beginn</td><td>Ende</td>
   </tr>
   <tr>
    <td>Datum:</td>
    <td><xsl:value-of select="$beginn"/></td>
    <td><xsl:value-of select="$ende"/></td>
   </tr>
   <tr>
    <td>Uhrzeit:</td>
    <td><xsl:value-of select="$beginn-uhrzeit"/></td>
    <td><xsl:value-of select="$ende-uhrzeit"/></td>
   </tr>
  </table>
</xsl:template>

<xsl:template match="TerminInfos">
Verschiebbar:
<xsl:value-of select="@verschiebbar"/>xsl:text -- </xsl:text>
<br/>
Serientermin:
<xsl:value-of select="@Serientermin"/>xsl:text -- </xsl:text>
<br/>
Terminersteller:
<xsl:variable name="terminersteller"><xsl:value-of select="@Terminersteller"/></xsl:variable>
<xsl:for-each select="//Person">
 <xsl:if test="$terminersteller=@id">
  <xsl:value-of select="Vorname"/>
  xsl:text </xsl:text>
  <xsl:value-of select="Nachname"/>
 </xsl:if>
</xsl:for-each>
<br/><br/>
</xsl:template>

<xsl:template match="TerminInfos/Beginn/Datum">
 <xsl:value-of select="@tag"/>
 .
 <xsl:value-of select="@monat"/>
 .
 <xsl:value-of select="@jahr"/>
</xsl:template>

<xsl:template match="TerminInfos/Ende/Datum">
 <xsl:value-of select="@tag"/>
 .
 <xsl:value-of select="@monat"/>
 .
 <xsl:value-of select="@jahr"/>
</xsl:template>

<xsl:template match="TerminInfos/Beginn/Uhrzeit">
  <xsl:value-of select="@stunden"/>
  :
  <xsl:value-of select="@minuten"/>
</xsl:template>

<xsl:template match="TerminInfos/Ende/Uhrzeit">
  <xsl:value-of select="@stunden"/>
  :
  <xsl:value-of select="@minuten"/>
</xsl:template>

<xsl:template match="TerminInfos/Dauer">
Dauer:
<xsl:value-of select="@einheit"/>xsl:text: </xsl:text><xsl:value-of select="."/>
</xsl:template>

<xsl:template match="TeilnehmerListe">
<xsl:for-each select="Person">
Teilnehmer xsl:number/: <xsl:value-of select="Vorname"/>xsl:text </xsl:text><xsl:value-of select="Nachname"/>xsl:text</xsl:text>
<xsl:value-of select="$detailsvar"/>
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>

  1. Hallo,

    Um einen Knotensatz in einer Variable abzulagen und dann mit der variable weiterzuarbeiten solltest du auf xslt2.0 setzen. Warum? Es gibt zwar unter xslt1.0 auch die Möglichkeit auf diese Knotensätze zuzugreifen, allerdings ist die schreibweise abhängig vom Parser bzw. besitz auch unterschiedliche namespace (siehe hier: http://www.xml.com/pub/a/2003/07/16/nodeset.html ). XSLT2.0 fähige Parser sollte generell mit knoten in variablen arbeiten können.

    Gruß, H.

  2. Hallo,

    hallo, ich möchte gerne wissen wie man html-code in xsl-variablen übergibt.
    die daten werden alle richtig ausgegeben, nur alles was html-code ist wird einfach nicht wiedergegeben.
    deshalb habe ich keine zeilenumbrüche und keine tabelle.
    (bin blutiger anfänger, deshalb sieht es vielleicht etwas merkwürdig aus?!)

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"

    Verwendest du wirklich XSLT 2.0 bzw. hast du das vor?
    Der Code sieht in der Tat etwas merkwürding aus, ich kann nicht genau nachvollziehen was du erreichen willst. Warum stellst alles in Variablen hinein? Ich sehe dafür keine notwendigkeit in diesem Code.

    Grüße
    Thomas