Xslt 如何使代码更结构化或更易于查看,这里的if语句不是很好

Xslt 如何使代码更结构化或更易于查看,这里的if语句不是很好,xslt,Xslt,我想对我现在的每一句话都做一个很好的如果或者其他的解释 这就是我现在拥有的,但它太乱了 帮忙 PCE 四氯乙烯 地铁 四氯乙烯 东南方 四氯乙烯 东南方 东南方 东南方 东南方 东南方 东南方 东南方 东南方 东南方 东南方 四氯乙烯 四氯乙烯 四氯乙烯 四氯乙烯 地铁 四氯乙烯 四氯乙烯 四氯乙烯 四氯乙烯 地铁 四氯乙烯 地铁 地铁 地铁 地铁 地铁 地铁 您可以做两件事: 1) 停止重复输出节点,以便: <ORDER_UNIT> <xsl:if test="conditi

我想对我现在的每一句话都做一个很好的如果或者其他的解释

这就是我现在拥有的,但它太乱了 帮忙

PCE
四氯乙烯
地铁
四氯乙烯
东南方
四氯乙烯
东南方
东南方
东南方
东南方
东南方
东南方
东南方
东南方
东南方
东南方
四氯乙烯
四氯乙烯
四氯乙烯
四氯乙烯
地铁
四氯乙烯
四氯乙烯
四氯乙烯
四氯乙烯
地铁
四氯乙烯
地铁
地铁
地铁
地铁
地铁
地铁

您可以做两件事:

1) 停止重复输出节点,以便:

<ORDER_UNIT>
<xsl:if test="condition">value</xsl:if>
<xsl:if test="condition">value</xsl:if>
</ORDER_UNIT>

价值
价值
2) 将重复输出值分组:

<xsl:if test="unit = '167-01' or unit = '168-01'">SE</xsl:if>
SE
我想做一个很好的假设,否则

对于互斥条件,应使用
xsl:choose
,而不是一系列
xsl:if
说明:

<ORDER_UNIT>
    <xsl:choose>
        <xsl:when test="unit = '110-01'">PCE</xsl:when>
        <xsl:when test="unit = '120-01'">PCE</xsl:when>
        <xsl:when test="unit = '130-01'">MTR</xsl:when>
        <xsl:when test="unit = '140-01'">PCE</xsl:when>
        <xsl:when test="unit = '150-01'">SE</xsl:when>
        <xsl:when test="unit = '160-01'">PCE</xsl:when>
        <xsl:when test="unit = '167-01'">SE</xsl:when>
        <xsl:when test="unit = '168-01'">SE</xsl:when>
        <xsl:when test="unit = '169-01'">SE</xsl:when>
        <xsl:when test="unit = '170-01'">SE</xsl:when>
        <xsl:when test="unit = '171-01'">SE</xsl:when>
        <xsl:when test="unit = '172-01'">SE</xsl:when>
        <xsl:when test="unit = '172-02'">SE</xsl:when>
        <xsl:when test="unit = '173-01'">SE</xsl:when>
        <xsl:when test="unit = '174-01'">SE</xsl:when>
        <xsl:when test="unit = '175-01'">SE</xsl:when>
        <xsl:when test="unit = '180-01'">PCE</xsl:when>
        <xsl:when test="unit = '190-01'">PCE</xsl:when>
        <xsl:when test="unit = '200-01'">PCE</xsl:when>
        <xsl:when test="unit = '205-01'">PCE</xsl:when>
        <xsl:when test="unit = '210-01'">MTR</xsl:when>
        <xsl:when test="unit = '220-01'">PCE</xsl:when>
        <xsl:when test="unit = '230-01'">PCE</xsl:when>
        <xsl:when test="unit = '260-01'">PCE</xsl:when>
        <xsl:when test="unit = '270-01'">PCE</xsl:when>
        <xsl:when test="unit = '280-01'">MTR</xsl:when>
        <xsl:when test="unit = '310-01'">PCE</xsl:when>
        <xsl:when test="unit = '350-01'">MTR</xsl:when>
        <xsl:when test="unit = '360-01'">MTR</xsl:when>
        <xsl:when test="unit = '370-01'">MTR</xsl:when>
        <xsl:when test="unit = '380-01'">MTR</xsl:when>
        <xsl:when test="unit = '390-01'">MTR</xsl:when>
        <xsl:when test="unit = '400-01'">MTR</xsl:when>
    </xsl:choose>
</ORDER_UNIT>

四氯乙烯
四氯乙烯
地铁
四氯乙烯
东南方
四氯乙烯
东南方
东南方
东南方
东南方
东南方
东南方
东南方
东南方
东南方
东南方
四氯乙烯
四氯乙烯
四氯乙烯
四氯乙烯
地铁
四氯乙烯
四氯乙烯
四氯乙烯
四氯乙烯
地铁
四氯乙烯
地铁
地铁
地铁
地铁
地铁
地铁
这样,当
test=“unit='130-01'
返回true时,将立即返回结果字符串
“MTR”
,您将消除30个后续测试的冗余评估,从而节省时间、电力和环境

通过首先测试最频繁的值,可以进一步提高效率



另一种选择是将所有测试值放在一个变量中(甚至放在一个单独的文档中),并使用a从中查找相应的结果——但这只有在使用XSLT 2.0或更高版本时才实用(尽管在XSLT 1.0中仍然可以使用更多的代码)

您使用的是哪种XSL版本?我同意1),如果您考虑例如“代码> SE <代码>输出值10例,公平点,则可能会产生更多混乱。如果只有几个选项,但不是10个,那就好了。
<ORDER_UNIT>
    <xsl:choose>
        <xsl:when test="unit = '110-01'">PCE</xsl:when>
        <xsl:when test="unit = '120-01'">PCE</xsl:when>
        <xsl:when test="unit = '130-01'">MTR</xsl:when>
        <xsl:when test="unit = '140-01'">PCE</xsl:when>
        <xsl:when test="unit = '150-01'">SE</xsl:when>
        <xsl:when test="unit = '160-01'">PCE</xsl:when>
        <xsl:when test="unit = '167-01'">SE</xsl:when>
        <xsl:when test="unit = '168-01'">SE</xsl:when>
        <xsl:when test="unit = '169-01'">SE</xsl:when>
        <xsl:when test="unit = '170-01'">SE</xsl:when>
        <xsl:when test="unit = '171-01'">SE</xsl:when>
        <xsl:when test="unit = '172-01'">SE</xsl:when>
        <xsl:when test="unit = '172-02'">SE</xsl:when>
        <xsl:when test="unit = '173-01'">SE</xsl:when>
        <xsl:when test="unit = '174-01'">SE</xsl:when>
        <xsl:when test="unit = '175-01'">SE</xsl:when>
        <xsl:when test="unit = '180-01'">PCE</xsl:when>
        <xsl:when test="unit = '190-01'">PCE</xsl:when>
        <xsl:when test="unit = '200-01'">PCE</xsl:when>
        <xsl:when test="unit = '205-01'">PCE</xsl:when>
        <xsl:when test="unit = '210-01'">MTR</xsl:when>
        <xsl:when test="unit = '220-01'">PCE</xsl:when>
        <xsl:when test="unit = '230-01'">PCE</xsl:when>
        <xsl:when test="unit = '260-01'">PCE</xsl:when>
        <xsl:when test="unit = '270-01'">PCE</xsl:when>
        <xsl:when test="unit = '280-01'">MTR</xsl:when>
        <xsl:when test="unit = '310-01'">PCE</xsl:when>
        <xsl:when test="unit = '350-01'">MTR</xsl:when>
        <xsl:when test="unit = '360-01'">MTR</xsl:when>
        <xsl:when test="unit = '370-01'">MTR</xsl:when>
        <xsl:when test="unit = '380-01'">MTR</xsl:when>
        <xsl:when test="unit = '390-01'">MTR</xsl:when>
        <xsl:when test="unit = '400-01'">MTR</xsl:when>
    </xsl:choose>
</ORDER_UNIT>