Несколько условий не выполняется в xslt - PullRequest
0 голосов
/ 23 февраля 2019

Я хочу, чтобы оценки соответствовали требуемым критериям оценки.Я попытался 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>
}

1 Ответ

0 голосов
/ 24 февраля 2019
<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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...