سؤال

ولدي قائمة من البنود مثل كيف المدرجة في أدناه، وأنا أحاول الحصول على هذا الخيار المحدد افتراضيا التي لها علامة معينة داخل "إدراج" علامة.

<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>
...

وأنا وضع XSL: إذا غير صحيح

هل كانت مفيدة؟

المحلول

والتعليمات البرمجية غير صالح لأنك متداخلة واحدة العلامة <xsl:attribute> داخل آخر. أعتقد أنك تريد شيئا مثل واحد مما يلي:

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

أو

<select name="{@id}_type">
    <xsl:if test="listing/Chat">
        <option value="Chat" selected="selected">Chat</option>
    </xsl:if>
</select>

والسابق يعرض دائما خيار "الدردشة"، ولكن فقط يختار أنه إذا تحقق الشرط. وهذا الأخير لا يعرض "الدردشة" على الإطلاق إلا إذا تحقق الشرط.

نصائح أخرى

وانه من الصعب ان نقول من التعليمات البرمجية التي قمت بتوفيرها، ولكن انا التخمين كنت تريد نتائج التي تبدو مثل هذا:

<select name="000_type">
<option value="chat" selected="selected"/>
<option value="chat"/>
</select>

في هذه الحالة تريد XSL التي تبدو مثل هذا:

<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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top