Announcement

Collapse
No announcement yet.

Verschachtelte Bedingungen

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

  • Verschachtelte Bedingungen

    Hallo zusammen,
    mein problem liegt in der Verschachtelung von mehreren When-Bedingungen. Das XSL-File sieht folgendermaßen aus:

    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- XSL-Transformation fuer Distler-Flyer -->
    <xslutput method="xml" indent="yes" encoding="utf-8" standalone="yes"/>



    <xsl:template match="/">
    <Root>
    <xsl:apply-templates select="/CatalogType/MediaItemList"/>
    </Root>
    </xsl:template>



    <xsl:template match="MediaItemList">
    <xsl:for-each select="MediaItem">
    <xsl:apply-templates select="."/>
    </xsl:for-each>
    </xsl:template>



    <xsl:template match="MediaItem">
    <!-- Bedingung Schiene A -->
    <xsl:choose>
    <xsl:when test='count(UserFields/UserField_14) > 0'>
    <!-- Produktteaser -->
    <Produktteaser>
    <xsl:value-of select="UserFields/UserField_2"/><xsl:text></xsl:text>
    </Produktteaser>
    <!-- Produkttitel -->
    <Produkttitel>
    <xsl:value-of select="UserFields/UserField_3"/><xsl:text></xsl:text>
    </Produkttitel>
    <!-- Produktbeschreibung -->
    <Produktbeschreibung>
    <xsl:value-of select="UserFields/UserField_4"/><xsl:text></xsl:text>
    </Produktbeschreibung>
    <!-- Pflichtext -->
    <xsl:choose>
    <xsl:when test='count(UserFields/UserField_7) > 0'>
    <Pflichttext>Diese Worte sollen dann platziert werden.</Pflichttext>
    </xsl:when>
    </xsl:choose>
    <!-- Grundpreis -->
    <xsl:choose>
    <xsl:when test='count(UserFields/UserField_9) > 0'>
    <Grundpreis>Entspricht € <xsl:value-of select="UserFields/UserField_9"/>.</Grundpreis>
    </xsl:when>
    </xsl:choose>
    <!-- UVP -->
    <xsl:choose>
    <xsl:when test='count(UserFields/UserField_7) > 0'>
    <UVP>UVP*: € <xsl:value-of select="UserFields/UserField_7"/></UVP>
    </xsl:when>
    </xsl:choose>
    <!-- Mengenangabe -->
    <Mengenangabe>
    <xsl:value-of select="UserFields/UserField_6"/><xsl:text></xsl:text>
    </Mengenangabe>
    <!-- VK -->
    <VK>
    <xsl:value-of select="UserFields/UserField_8"/>
    </VK>
    <!-- Produktbild -->
    <Produktbild>
    <xsl:attribute name="href">
    <xsl:value-of select="AssetProperties/Filepath"/>
    </xsl:attribute>
    </Produktbild>
    </xsl:when>
    </xsl:choose>
    </xsl:template>
    </xsl:stylesheet>


    Für die Bedingung
    „ <xsl:choose>
    <xsl:when test='count(UserFields/UserField_7) > x'>
    <Pflichttext>Diese Worte sollen dann platziert werden.</Pflichttext>
    </xsl:when>
    </xsl:choose>“
    funktioniert das XSL-File schon nicht mehr. Die ursprüngliche XML-Datei hat in dem „UserField_7“ den Wert „1“.
    Darf man Bedingungen in XSL nicht verschachteln oder liegt mein Problem an einer anderen Stelle?
    Zudem gibt der Transformator das gewünschte Feld aus sobald das „UserField_4“ einen Inhalt hat.

    Tausend Dank für eure Tipps im Voraus!

    Der Beitrag ging ehemals hier los ---> http://entwickler-forum.de/showthread.php?p=172337

    Bewerten Sie diesen Beitrag von xml-disco Beitrag melden Beitrag bearbeiten/löschen
Working...
X