Seleccionar un valor predeterminado en < seleccione > declaración en un archivo XSL

StackOverflow https://stackoverflow.com/questions/1400948

  •  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?

¿Fue útil?

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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top