Announcement

Collapse
No announcement yet.

(XSLT) Templates unter value-of anwenden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • (XSLT) Templates unter value-of anwenden

    Hi,

    ich befasse mich seit einer weile mit xml allerdings erst seit kurzem mit xslt.
    Meine Frage bezieht sich auf das abgewandelte Beispiel unter diesem Link:
    http://de.selfhtml.org/xml/darstellu...lossarbeispiel

    Der veränderte Teil der glossar.xml
    HTML Code:
     <eintrag>
        <begriff>Avatar</begriff>
       <definition>
        Bezeichnet in der Mythologie einen Gott, der auf Erden wandelt.
        Im Online-Sprachgebrauch eine grafische Phantasiefigur, mit der
        ein Teilnehmer an Chats, <unterstreichen>Rollenspielen</unterstreichen> usw. teilnimmt.
        </definition>
     </eintrag>
    Der veränderte Teil der glossar.xsl
    HTML Code:
    <xsl:template match="/">
     <html>
     <head>
     </head>
     <body>
     <table border="1">
     <tr>
      <td><b>Begriff</b></td>
      <td><b>Definition</b></td>
     </tr>
     <xsl:for-each select="glossar/eintrag">
     <tr>
      <td valign="top"><xsl:value-of select="begriff"><xsl:apply-templates/></xsl:value-of></td>
      <td valign="top"><xsl:value-of select="definition"><xsl:apply-templates/></xsl:value-of></td>
     </tr>
     </xsl:for-each>
     </table>
     </body>
     </html>
     </xsl:template>
    
     <xsl:template match="unterstreichen">
         <b><xsl:value-of select="."/></b>
     </xsl:template>

    Nach meinem bisherigem Verständnis müsste nun auf das "unterstreichen" Element das neu definierte template angewendet werden, so das der darin enthaltene Text von dem "b" Element umfasst wird. Jedoch passiert das nicht und das macht mich stuzig. Selbst das einfügen von den "apply-template" Tags hats nichts gebracht.

    Als Transformer verwende ich die entsprechenden Klassen der JavaBibliotek.

    Wo ist hier mein Denkfehler?


    mfg
    n.

  • #2


    ach das war ja easy!

    also zur Erklärung:
    Wenn man den Inhalt eines Knotens ausgeben möchte reicht die value-of Anweisung.
    Sollen zusätzlich noch weitere UnterTemplates beachtet werden muss man die apply-templates Anweisung verwenden. Diese kann (oh wunder) auch ein select Attribut haben und damit im Prinzip die gleich Aufgabe erfüllen.

    Vorher:
    HTML Code:
    <td valign="top"><xsl:value-of select="begriff"><xsl:apply-templates/></xsl:value-of></td>
    Nachher:
    HTML Code:
    <td valign="top"><xsl:apply-templates select="begriff"></xsl:apply-templates></td>

    mfg
    n.

    Comment

    Working...
    X