В моем XSLT у меня есть эта функция, которая успешно совпадает с/или/и двумя столбцами. FieldRef
отлично сочетается.Соответствие двух полей в XSLT и получение текущего значения
Моя проблема в том, что $currentValue
никогда не кажется равным тому, что я тестирую (то, что я тестирую, кажется, является пустой строкой).
В каком месте я ошибаюсь?
<!-- Convert the Fields into a status icons -->
<xsl:template match="FieldRef[@Name='YesNo']|FieldRef[@Name='TrueFalse']" mode="body">
<xsl:param name="thisNode" select="." />
<xsl:variable name="currentValue" select="$thisNode/@*[name()=current()/@Name]" />
<xsl:choose>
<xsl:when test="$currentValue='Yes'">
<span class="yesno yes"><xsl:value-of select="$currentValue" /></span>
</xsl:when>
<xsl:when test="$currentValue='No'">
<span class="yesno no"><xsl:value-of select="$currentValue" /></span>
</xsl:when>
<xsl:when test="$currentValue='True'">
<span class="yesno yes"><xsl:value-of select="$currentValue" /></span>
</xsl:when>
<xsl:when test="$currentValue='False'">
<span class="yesno no"><xsl:value-of select="$currentValue" /></span>
</xsl:when>
<xsl:otherwise>
<span class="yesnoN"><xsl:value-of select="$currentValue" /></span>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Одна вещь, которую я знаю, что если я
<xsl:variable name="thisName" select="./@Name" /> select="./@Name" />
тогда будет пытаться соответствовать, используя имя самого поля (вместо его значения).
Что я могу сделать?