Я изменяю некоторый XSLT и пытаюсь условно установить переменную, используя select-when.Ранее переменная была установлена без каких-либо условий. Я не могу понять, почему.
Ранее она была установлена с помощью:
<xsl:variable name="fields" select="pubs:field[@name=normalize-space($elements)]" />
Я пытался установить поля $, используя:
<xsl:variable name="fields">
<xsl:choose>
<xsl:when test="contains($elements, 'acceptance-date')">
<xsl:value-of select="pubs:field[@name=normalize-space($elements)]" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="pubs:field[@name=normalize-space($elements)]" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Я ожидаю, что остальная часть моего кода будет продолжаться, как это делалось ранее, на данный момент я установил его таким образом, пока экспериментировал (операторы select идентичны).Вместо этого я получаю «Ошибка XPATH: неверный тип», когда переменная $ fields используется в другом месте:
<xsl:variable name="field_values" select="$fields/pubs:people/*|$fields/pubs:keywords/*|$fields/pubs:items/*|$fields/*[local-name()!='items' and local-name()!='keywords' and local-name()!='people']" />
Я относительно новичок в XSLT / XPATH, поэтому я предполагаю, что это что-то очевидное, что япропал без вести.
Спасибо, Джеймс