Выбор значения по умолчанию в операторе <select>в файле XSL - PullRequest
1 голос
/ 09 сентября 2009

У меня есть список элементов, например, как он указан ниже, и я пытаюсь выбрать эту опцию по умолчанию, которая имеет определенный тег в теге «перечисления».

<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: если неправильно?

Ответы [ 2 ]

6 голосов
/ 09 сентября 2009

Ваш код недействителен, потому что вы вложили один тег <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>

Первый всегда отображает опцию «Чат», но выбирает ее только при соблюдении условия. Последний вообще не отображает «Чат», если не выполнено условие.

2 голосов
/ 09 сентября 2009

Трудно сказать по предоставленному вами коду, но я предполагаю, что вам нужны результаты, которые выглядят так:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...