XSL Dropdown Выбранный атрибут - PullRequest
0 голосов
/ 31 октября 2018

Я видел подобные вопросы и решения здесь, но ничего, что я пробовал, не сработало. Я пытаюсь создать выпадающий список названий месяцев с параметром / result / startMonthName, выбранным по умолчанию.

<select id="queryMonth">
<xsl:for-each select="/result/monthOptions/entry">
    <option value="{key + 1}">
        <xsl:value-of select="value"/>
        <xsl:if test="/result/startMonthName">
            <xsl:attribute name="selected">selected</xsl:attribute>
        </xsl:if>
    </option>
</xsl:for-each>
</select>

Однако первый месяц всегда является исходным выбранным. Результатом monthOptions является узел значений (названия месяцев) и ключей (целые числа месяца от 0 до 11). Я попытался с xsl: if test = "/ result / startMonthName" и xsl: if test = "/ result / startMonth".

Я обнаружил, что если

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

строка после

<xsl:if test="/result/startMonthName">
    <xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>

тогда последний месяц всегда является исходным выбранным, но никогда не является началом месяца.

1 Ответ

0 голосов
/ 31 октября 2018

Все, что делает <xsl:if test="/result/startMonthName">, проверяет, существует ли узел startMonthName, а не его значение.

Вы, вероятно, должны делать это ...

<xsl:if test="value = /result/startMonthName">

Кроме того, вам необходимо поменять операторы xsl:if и xsl:value-of, поскольку считается, что создание атрибута для элемента после создания дочернего узла считается ошибкой.

<option value="{key + 1}">
    <xsl:if test="value = /result/startMonthName">
        <xsl:attribute name="selected">selected</xsl:attribute>
    </xsl:if>
    <xsl:value-of select="value"/>
</option>

(Вероятно, происходило то, что процессор XSLT выбран таким образом, чтобы просто не добавлять атрибут в случае, если у вас были операторы наоборот, вместо того, чтобы помечать ошибку, что не приводит к выбору параметров. просто выберите первый вариант по умолчанию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...