用于从两个中选择一个数字的XSLT代码

时间:2016-03-11 13:49:28

标签: xml xslt

你能帮我解决一下这段代码吗?我在输出中只得到一个数字,我不知道这是怎么发生的,并且有一个似乎没有在任何地方使用过的变量。

PS:我没有编写代码,但我需要修改它,但我不知道它是如何工作的。

<xsl:template match="DATA">
    <xsl:variable name="cat" select="@code"/>
    <xsl:variable name="con" select="@print"/>
    <xsl:choose>
        <xsl:when test="string-length($con) = 0">
            <xsl:text>0|0</xsl:text>
        </xsl:when>
        <xsl:when test="$con = 'Somthing1'">
            <xsl:text>1|0</xsl:text>
        </xsl:when>
        <xsl:when test="$con = 'Somthing2'">
            <xsl:text>2|7</xsl:text>
        </xsl:when>
        <xsl:when test="$con = 'Somthing3'">
            <xsl:text>5|3</xsl:text>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>0|0</xsl:text>
            <xsl:call-template name="create">
                <xsl:with-param name="n1" select="'0'"/>
                <xsl:with-param name="n2" select="'0'"/>
            </xsl:call-template>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

<xsl:template name="create">
    <xsl:param name="n1"/>
    <xsl:param name="n2"/>
    <n1>
        <xsl:value-of select="$n1"/>
    </n1>
    <n2>
        <xsl:value-of select="$n2"/>
    </n2>
</xsl:template>

输出如下:

<n1>0</n1>
<n2>0</n2>
<n1>2</n1>
<n2>7</n2>
<n1>1</n1>
<n2>0</n2>
<n1>5</n1>
<n2>3</n2>

0 个答案:

没有答案