在xslt中不执行多个条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在xslt中不执行多个条件相关的知识,希望对你有一定的参考价值。

我希望标记符合要求的等级标准。我试过xsl:choose检查标记条件,但它没有检查它总是执行的条件,否则条件。有人可以分享解决方案吗?

XML:

{
<marklist>
    <student>
        <reg_no>100</reg_no>
        <name>aaa</name>
        <marks>
            <CD>55</CD>
            <AI>44</AI>
        </marks>
    </student>
    <student>
        <reg_no>101</reg_no>
        <name>bbb</name>
        <marks>
            <CD>65</CD>
            <AI>46</AI>
        </marks>
    </student>
</marklist>
}

必需的XML格式:

{
<marklist>
    <student>
        <reg_no>100</reg_no>
        <name>aaa</name>
        <grade>
            <CD>D</CD>
            <AI>E</AI>
        </grade>
    </student>
    <student>
        <reg_no>101</reg_no>
        <name>bbb</name>
        <grade>
            <CD>C</CD>
            <AI>E</AI>
        </grade>
    </student>
</marklist>
}
答案
<xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="CD">
        <CD>
        <xsl:choose>
            <xsl:when test=". &lt; 60 and . &gt; 50">
                    <xsl:value-of select="'D'"/>
            </xsl:when>
            <xsl:when test=". &lt; 70 and . &gt; 60">
                <xsl:value-of select="'C'"/>
            </xsl:when>
        </xsl:choose>
        </CD>
    </xsl:template>

    <xsl:template match="AI">
        <AI>
        <xsl:choose>
            <xsl:when test=". &lt; 60 and . &gt; 50">
                <xsl:value-of select="'D'"/>
            </xsl:when>
            <xsl:when test=". &lt; 70 and . &gt; 60">
                <xsl:value-of select="'C'"/>
            </xsl:when>
            <xsl:when test=". &lt; 50 and . &gt; 30">
                <xsl:value-of select="'E'"/>
            </xsl:when>
        </xsl:choose>
        </AI>
    </xsl:template>

You may check value of CD and AI and apply Grade according to that

以上是关于在xslt中不执行多个条件的主要内容,如果未能解决你的问题,请参考以下文章

XSLT:根据条件设置多个变量

xslt:css在html页面中不起作用

XSLT筛选器节点多个条件

4.3 合并重复的条件执行片段

XSLT:无法将操作数转换为“结果树片段”

XSLT 在 Web 浏览器中不起作用