Я пытаюсь установить переменную в XSLT 1.0 следующим образом
<xsl:variable name="by" select="Contributors/Contributor[Role='ReMixer']/Name | Attribution" />
Идея состоит в том, что если роль Remixer не завершается, переменная принимает значение Attribution, однако при тестировании она всегда принимает значение Attribution независимо от этого.
есть идеи, почему это происходит, и решение?
обновление 1
Это то, чем я сейчас занимаюсь
<xsl:variable name="Remixer" select="Contributors/Contributor[Role='ReMixer']/Name" />
<xsl:variable name="by">
<xsl:choose>
<xsl:when test="$Remixer = ''">
<xsl:value-of select="Attribution"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$Remixer"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Был бы более короткий способ добиться тех же результатов?
ниже - копия документа xml
<track>
<attribution>Various Artists</attribution>
<contributors>
<contributor primary="true">
<role>Recording Artist</role>
<name country="" birth-deathyear="" part3="Cosmic Gate" part2="" part1="">Cosmic Gate</name>
</contributor>
<contributor primary="true">
<role>ReMixer</role>
<name country="" birth-deathyear="" part3="Gary Gee" part2="" part1="">Gary Gee</name>
</contributor>
</contributors>
</track>
Спасибо
Sam