在xslt中设置一个条件来处理下划线

时间:2015-03-02 15:44:16

标签: xslt xslt-1.0

我正在读一个xml,在xml中有一个标签,如下所示..

<tradeRefId>10352684-2</tradeRefId>

现在它的价值也可以是..

&LT; tradeRefId>10353984</tradeRefId>

所以要从xml中提取这个标签我已经编写了xsl,如下所示..

<Contract_Id>
                <xsl:value-of select="eurr:tradeRefId"/>
                <!-- <xsl:value-of select="substring-before(eurr:tradeRefId, '-')" /> -->
                </Contract_Id> 

现在我想做一个检查,如果在这个标签的值中,如果'_'即将到来,那么它不应该包括在内,所以10352684-2应该被视为10352684所以请告知我该如何进行这样的检查 请指教

1 个答案:

答案 0 :(得分:0)

它并不漂亮,但这应该有效:

<Contract_Id>
    <xsl:choose>
        <xsl:when test="contains(eurr:tradeRefId, '_')">
            <xsl:value-of select="substring-before(eurr:tradeRefId, '_')"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="eurr:tradeRefId"/>
        </xsl:otherwise>
    </xsl:choose>
</Contract_Id>

我不确定你的问题是否试图检测连字符: - 或下划线 _ 上面的XSL适用于下划线,所以必要时替换。