Sélection d’une valeur par défaut dans un < sélectionnez > déclaration dans un fichier XSL
-
05-07-2019 - |
Question
J'ai une liste d'éléments similaires à ceux énumérés ci-dessous, et j'essaie de sélectionner cette option par défaut, qui comporte une balise dans le "listing". tag.
<select>
<xsl:attribute name="name"><xsl:value-of select="@id"/>_type</xsl:attribute>
<option><xsl:attribute name="value"><xsl:if test="listing/Chat"><xsl:attribute name="selected">selected</xsl:attribute></xsl:if>Chat</xsl:attribute>Chat</option>
...
Est-ce que je place le xsl: s'il est incorrect?
La solution
Votre code n'est pas valide car vous avez imbriqué une balise < xsl: attribut >
dans une autre. Je crois que vous voulez quelque chose comme l’un des suivants:
<select name="{@id}_type">
<option value="Chat">
<xsl:if test="listing/Chat">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:text>Chat</xsl:text>
</option>
</select>
ou
<select name="{@id}_type">
<xsl:if test="listing/Chat">
<option value="Chat" selected="selected">Chat</option>
</xsl:if>
</select>
L'ancien affiche toujours le " Chat " option, mais ne la sélectionne que si la condition est remplie. Ce dernier n'affiche pas " Chat " du tout, sauf si la condition est remplie.
Autres conseils
Il est difficile de distinguer le code que vous avez fourni, mais je suppose que vous voulez des résultats qui ressemblent à ceci:
<select name="000_type">
<option value="chat" selected="selected"/>
<option value="chat"/>
</select>
Dans ce cas, vous voulez un XSL ressemblant à ceci:
<xsl:element name="select">
<xsl:attribute name="name" select="concat(@id,'_type'))"/>
</xsl:element>
<xsl:element name="option">
<xsl:attribute name="value">
<xsl:value-of select="chat"/>
</xsl:attribute>
<xsl:if test="listing/Chat">
<xsl:attribute name="selected">
<xsl:text>selected</xsl:text>
</xsl:attribute>
</xsl:if>
</xsl:element>