AndreasZ.: template mit choose

Hallo zusammen!

Ich füge mittels xslt Daten aus einer xml in eine Anwendung ein
Mache ich das so:

  
<xsl:if test="$struct/Attributes/Attribute[@acronym='COLPAT']/@value != '' " >  
        <xsl:element name="COLPAT">  
            <xsl:value-of select="$struct/Attributes/Attribute[@acronym='COLPAT']/@value"/>  
        </xsl:element>  
</xsl:if>

Dadurch bekomme ich in meine Anwendung in das entsprechende Feld eine 1, 2 oder 3. Nun verbirgt sich hinter 1,2,3 jeweils ein Text, den ich mittels template einfügen möchte:

  
<xsl:template match="Attribute[@acronym='COLPAT']">  
  <xsl:choose>  
    <xsl:when test="@value = '1'">  
		<xsl:text>horizontal gestreift</xsl:text>  
    </xsl:when>  
    <xsl:when test="@value = '2'">  
		<xsl:text>vertikal gestreift</xsl:text>  
    </xsl:when>  
    <xsl:when test="@value = '3'">  
		<xsl:text>diagonal gestreift</xsl:text>  
    </xsl:when>	  
  </xsl:choose>	  
</xsl:template>

Der Aufruf:

<xsl:template match="Feature[@acronym='COLPAT']">  
    <xsl:apply-templates select="./Attributes/Attribute[@acronym='COLPAT']"/>  
</xsl:template>

Leider kommt ohne jegliche Fehlermeldung nix an. Hat jemand einen Rat?
Anmerkung: Einfluss habe ich weder auf die ankommende XML, noch auf Programmierung innerhalb der Anwendung (da nur mittels Formulardesigner ein Feld names COLPAT und den Datentyp (String) zu definieren).

Andreas

  1. Halllo,

    ohne die XML Quelle zu kennen wird das schwer, dir einen Rat zu geben. Ich vermute aber einfach, dass du dich in den falschen Knoten mit deinen Abfragen bewegst. Bedenke, dass du dich in den jeweiligen Zielknoten deiner Xpath Abfragen befindest und diese Zielknoten dann wieder der Starpunkt für neue XPATH Abfragen sind.

    Deshalb waere es sinnvoll, wenn man etwas mehr von deiner XML Quelle sieht, bzw. eine du eine Abwandlung zeigst. Bedenke darüber hinaus die Möglichkeit, dass du Werte auch an Templates übergeben kannst und diese dann mit in Xpath einbauen kannst.

    1. Ich vermute aber einfach, dass du dich in den falschen Knoten mit deinen Abfragen bewegst. Bedenke, dass du dich in den jeweiligen Zielknoten deiner Xpath Abfragen befindest und diese Zielknoten dann wieder der Starpunkt für neue XPATH Abfragen sind.

      Genau das war es. Vor dem @value fehlte einfach ein Stück Pfad. Vielen Dank!