Announcement

Collapse
No announcement yet.

XSLT Transformation einer Liste

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

  • XSLT Transformation einer Liste

    Hallo Leute,
    ich bin hier im Moment etwas am verzweifeln ;-)

    Also ich habe eine Liste die sieht folgendermaßen aus:
    Code:
    <list>
    <ec:list-item>
    <ec:pcdata>A</ec:pcdata>
    </ec:list-item>
    <ec:list-item>
    <ec:pcdata>B</ec:pcdata>
    <ec:pcdata kind="low">2</ec:pcdata>
    <ec:pcdata>C</ec:pcdata>
    </ec:list-item>
    </list>
    So wie euch sicher auffällt, hat eccdate manchmal ein attribut und manchmal nicht, das will ich zur selektion verwenden.

    wenn ich jetzt mittels xslt die Liste umformen will prüfe ich mit
    Code:
    <xsl:when test="ec:pcdata/@kind='low'">
    dann sollen die Inhalte von eccdata mit <sub> </sub> umschlossen werden

    Leider wird dies immer nur für den gesamten ec:list-item block gemacht und nicht für das einzelne Element eccdata

    in diesem fall also <li>B<sub>2</sub>C</li> <-- So sollte das Ergebnis eigentlich aussehen stattdessen

    <li><sub>B 2 C </sub></li> <-- So sieht das Ergebnis im Moment aus !

    Hat jemand einen Rat für mich ?

    Gruß tigga

  • #2
    Strukturiere die Templates in dieser Weise:

    Code:
    <xsl:template match="list">
      <ul><xsl:apply-templates select="ec:list-item"/></ul>
    </xsl:template>
    
    <xsl:template match="ec:list-item">
      <li><xsl:apply-templates select="ec:pcdata"/></li>
    </xsl:template>
    
    <xsl:template match="ec:pcdata">
      <xsl:value-of select="."/>
    </xsl:template>
    
    <xsl:template match="ec:pcdata[@kind='low']">
      <sub><xsl:value-of select="."/></sub>
    </xsl:template>

    Comment


    • #3
      Thx

      Vielen herzlichen Dank !
      Es klappt auf anhieb, super das ich so schnell hilfe bekommen habe.

      Mit besten Grüßen
      tigga

      Comment

      Working...
      X