Все, что делает <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 выбран таким образом, чтобы просто не добавлять атрибут в случае, если у вас были операторы наоборот, вместо того, чтобы помечать ошибку, что не приводит к выбору параметров. просто выберите первый вариант по умолчанию).