سؤال

محاولة وضع علامة على مدخلات الراديو كما تم تحديدها مع 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