如何避免在某些值上在XSL中创建超链接?

时间:2015-04-21 02:10:54

标签: xslt

我有一个从以下XSL代码生成的报告。代码在每个数字上生成超链接,但是如果变量的值为零,我想避免创建超链接。这是我的代码。请告诉我如何在值为零时避免创建超链接

<xsl:choose>
    <xsl:when test="Image = '' and not(ValueId = '0')">
        <TD style='background-color:#FF6360'>
            <xsl:variable name="value">
                <xsl:value-of select="ValueId"/>
            </xsl:variable>
            <xsl:variable name="URL">
                <xsl:value-of select="concat('https://google.com/imp/values.aspx?id=', $value)"/>
            </xsl:variable> 
            <a href="{$URL}">
                <xsl:value-of select="ValueId"/>
            </a>
        </TD>
    </xsl:when>
</xsl:choose>

1 个答案:

答案 0 :(得分:0)

以下将测试变量$ value的值是否为0,并且仅当它不等于0时才会创建链接:

<xsl:if test="$value!=0">
    <a href="{$URL}">
         <xsl:value-of select="ValueId"/>
    </a>
</xsl:if>

如果$ value的类型不是数字,则测试应为

test="$value!='0'"

当前代码中的问题是,如果值为零,则不生成表格单元格 - 即使值为零,您肯定还要生成td? 你似乎有一些不必要的代码:首先你为$ Value创建一个由ValueId初始化的变量。你可以直接用ValueId完成所有这些。