Първо, трябва да призная, че съм начинаещ в XML, така че простете ми за глупавите въпроси.
Целта ми е да получа стойността на $majorGoal
.
<xsl:variable name="variable">
<xsl:value-of select="(../@attribute) * 100 />
</xsl:variable>
<xsl:variable name="minorGoal1">
<xsl:choose>
<xsl:when test="$variable < -2">25</xsl:when>
<xsl:when test="$variable >= -2">20</xsl:when>
<xsl:choose>
</xsl:variable>
<xsl:variable name="minorGoal2">
<xsl:choose>
<xsl:when test="$variable < -2">40</xsl:when>
<xsl:when test="$variable >= -2">24</xsl:when>
<xsl:choose>
</xsl:variable>
<xsl:variable name="minorGoal3">
<xsl:choose>
<xsl:when test="$variable < -2">55</xsl:when>
<xsl:when test="$variable >= -2 and < 4">50</xsl:when>
<xsl:when test="$variable >= 4">50</xsl:when>
<xsl:choose>
<xsl:variable name="minorGoal4">
<xsl:choose>
<xsl:when test="$variable < -2">80</xsl:when>
<xsl:when test="$variable >= -2 and < 4">70</xsl:when>
<xsl:when test="$variable >= 4">60</xsl:when>
<xsl:choose>
</xsl:variable>
<!-- I have 10 more similar variables -->
<xsl:variable name="minorGoal">
<xsl:choose>
<xsl:when test="$anotherVariable = 30">
<xsl:value-of select="$minorGoal1"/>
</xsl:when>
<xsl:when test="$anotherVariable = 40">
<xsl:value-of select="$minorGoal2"/>
</xsl:when>
<xsl:when test="$anotherVariable = 50">
<xsl:value-of select="$minorGoal3"/>
</xsl:when>
<xsl:when test="$anotherVariable = 60">
<xsl:value-of select="$minorGoal4"/>
</xsl:when>
<!-- Another 10 more similar variables -->
</xsl:choose>
</xsl:variable>
<xsl:variable name="majorGoal">
<xsl:value-of select="$minorGoal"/>
</xsl:variable>
@attribute се отнася до изходния xml файл. $anotherVariable се дефинира като глобална променлива в същия xsl файл и е постоянна.
Проблемът е, че анализаторът връща грешка:
Очаквано изражение. $променлива >= -2 и -->‹‹-- 4
Мога да предположа, че проблемът е причинен от:
<xsl:when test="$variable >= -2 and < 4">50</xsl:when>
но как иначе да се опише диапазон от числа?