Question

Essayer de marquer les entrées de radio sélectionnée comme avec XSLT 1.0 en utilisant le code suivant XSLT mais cela ne veut pas produit le résultat souhaité

Résultat desrired

<input type="radio" value="available" title="email" selected="selected" />

sortie réelle

  <input type="radio" value="available" title="email" selected />

Toute personne des idées pourquoi ne pas plaire?

XSLT

<xsl:variable name="selected">selected</xsl:variable>
  <xsl:for-each select="item">
   <tr>

     <td><xsl:value-of select="title" /></td>

     <td>
       <input type="radio" value="available" >
       <xsl:attribute name="name">
        <xsl:value-of select="title" />
       </xsl:attribute>
       <xsl:if test="category='available'">
         <xsl:attribute name="selected">
          <xsl:value-of select="$selected"/>
         </xsl:attribute>
       </xsl:if>
       </input>
     </td>

     <td>
       <input type="radio" value="unavailable" >
       <xsl:attribute name="name">
        <xsl:value-of select="title" />
       </xsl:attribute>
       <xsl:if test="category='unavailable'">
        <xsl:attribute name="selected">
         <xsl:value-of select="$selected"/>
        </xsl:attribute>
       </xsl:if>
       </input>
     </td>


     <td>
       <input type="radio" value="warning" >

       <xsl:if test="category='warning'">
        <xsl:attribute name="selected">
            <xsl:value-of select="$selected"/>
           </xsl:attribute>
           <xsl:attribute name="name">
        <xsl:value-of select="title" />
       </xsl:attribute>
       </xsl:if>
       </input>
     </td>

   </tr>

   </xsl:for-each>
Était-ce utile?

La solution

Ceci est dû à votre mode de sortie. Avez-vous demandé à votre processeur XSLT à la sortie HTML (plutôt que XML)? Si oui, le sérialiseur de sortie est adapté pour ajuster les idiosyncrasies de HTML; de sorte que, par exemple, il génère <br> plutôt que <br/> et qu'il peut laisser de contenu d'attribut si identique à un nom d'attribut.

Cela ne devrait pas être un problème; il est HTML juridique, par la manière.

Pour plus de détails; la spécification a une section sur exactement ce mode de sortie html est censé faire . Amonst autres choses, il dit ...

  

La méthode de sortie HTML doit attributs booléens de sortie (à savoir les attributs avec une seule valeur autorisée qui est égale au nom de l'attribut) sous forme réduite au minimum. Par exemple, une balise de début écrit dans la feuille de style comme

<OPTION selected="selected">
     

devrait être sortie comme

<OPTION selected>

Autres conseils

Essayez ceci:

<xsl:variable name="selected" select="selected"/>

http://www.w3schools.com/xsl/el_variable.asp

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top