Вопрос

Попытка пометить радиовходы как выбранные с помощью XSLT 1.0 с использованием приведенного ниже кода xslt, но это не привело к желаемому результату

желаемый результат

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

Фактический результат

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

У кого-нибудь есть идеи, почему бы и нет, пожалуйста?

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>
Это было полезно?

Решение

Это связано с вашим режимом вывода.Вы дали указание своему процессору XSLT выводить HTML (а не XML)?Если это так, выходной сериализатор адаптирован для адаптации к особенностям HTML;так что, например, он генерирует <br> вместо того , чтобы <br/> и что в нем может отсутствовать содержимое атрибута, если оно идентично имени атрибута.

Это не должно быть проблемой;кстати, это легальный HTML.

Для получения более подробной информации;в спецификации есть раздел о что именно должен делать режим вывода html.Там говорится о многих других вещах...

Метод вывода html должен выводить логические атрибуты (то есть атрибуты с единственным допустимым значением, равным имени атрибута) в свернутом виде.Например, начальный тег, записанный в таблице стилей как

<OPTION selected="selected">

должно быть выведено как

<OPTION selected>

Другие советы

Попробуй это:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top