Seleccionar un valor predeterminado en < seleccione > declaración en un archivo XSL
-
05-07-2019 - |
Pregunta
Tengo una lista de elementos como los que se enumeran a continuación, y estoy tratando de seleccionar esa opción de manera predeterminada que tiene una determinada etiqueta dentro del " listado " etiqueta.
<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>
...
¿Estoy colocando el xsl: if incorrectamente?
Solución
Su código no es válido porque ha anidado una etiqueta < xsl: attribute >
dentro de otra. Creo que quieres algo como uno de los siguientes:
<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>
o
<select name="{@id}_type">
<xsl:if test="listing/Chat">
<option value="Chat" selected="selected">Chat</option>
</xsl:if>
</select>
El primero siempre muestra el " Chat " opción, pero solo la selecciona si se cumple la condición. Este último no muestra "Chat" en absoluto a menos que se cumpla la condición.
Otros consejos
Es difícil saber por el código que ha proporcionado, pero supongo que quiere resultados que se vean así:
<select name="000_type">
<option value="chat" selected="selected"/>
<option value="chat"/>
</select>
En cuyo caso desea XSL que se vea así:
<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>