2016-07-13 5 views
-1

Ich versuche, eine Bedingung innerhalb eines Links hinzuzufügen, der ungefähr so ​​aussieht.Kann <xsl:choose> xsl Bedingung innerhalb <a> Tag nicht einstellen. Ausdruck gibt leer

<a class="accordion-toggle" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse" aria-expanded="true" aria-controls="collapse"> 
    <xsl:value-of select="./Data[@Name='Title']"/> 
    <div class=""></div> 
    <xsl:attribute name="class"> 
    <xsl:choose> 
     <xsl:when test="/Properties/Data[@ID='ISSOCIAL']/Option[@Selected='true']/Value = 1"> 
     pull-right down 
     </xsl:when> 
     <xsl:otherwise> 
     pull-right 
     </xsl:otherwise> 
    </xsl:choose> 
    </xsl:attribute> 
</a> 

Leider ist die Klasse innerhalb des div-Tag sieht wie folgt aus <div class=""> ..empty.

Wenn ich jedoch nur Folgendes ausführen sollte, ohne die Bedingung innerhalb des Anchor-Tags hinzuzufügen, wird es in Ordnung wiedergegeben.

<div class=""></div> 
<xsl:attribute name="class"> 
    <xsl:choose> 
    <xsl:when test="/Properties/Data[@ID='ISSOCIAL']/Option[@Selected='true']/Value = 1"> 
     pull-right down 
    </xsl:when> 
    <xsl:otherwise> 
     pull-right 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:attribute> 

Ausgang suchen, wie dieses <div class="pull-right down"></div>

Alle Ideen, warum dies geschieht? jede Hilfe würde geschätzt werden!

Antwort

1

Wenn Sie das Attribut der div hinzufügen möchten, müssen Sie die xsl:attribute innerhalb der div setzen.

<div> 
    <xsl:attribute name="class"> 
    <xsl:choose> 
     <xsl:when test="/Properties/Data[@ID='ISSOCIAL']/Option[@Selected='true']/Value = 1"> 
     pull-right down 
     </xsl:when> 
     <xsl:otherwise> 
     pull-right 
     </xsl:otherwise> 
    </xsl:choose> 
    </xsl:attribute> 
</div> 

Da die Frage, wie XSLT 2.0 markiert ist, können Sie einfach verwenden

<div class="{if (/Properties/Data[@ID='ISSOCIAL']/Option[@Selected='true']/Value = 1) then 'pull-right down' else 'pull-right'}">..</div> 
+0

Sieht Ich habe keinen Zugriff auf XSL 2.0, ich entschuldige mich Ich werde meine Tags aktualisieren. Gibt es eine Möglichkeit, dies mit 1.0 zu tun? Vielen Dank. – BaconJuice

+0

Sehen Sie die Bearbeitung, wie gesagt, wenn Sie 'xsl: attribute' für das' div' verwenden wollen, gehört es in das 'div'. –