Sélection d’une valeur par défaut dans un < sélectionnez > déclaration dans un fichier XSL

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

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

Était-ce utile?

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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top