需要在XLS

时间:2015-08-05 14:42:43

标签: xslt

我需要在XLS中执行以下操作。这是一个XML示例:

<timecode>01;02;03;04</timecode>

我需要一个函数将其转换为...

<timecode>01:02:03;04</timecode>

我只需要更改分号的前3个实例并将其转换为冒号。我需要它重新格式化下面<xsl:value-of>的返回值:

        <Bug___Watermark___Call_Us__ONLY__BUG___for_TBNTCC__TC_IN>
            <xsl:choose>
                <xsl:when test="locators/locator[color = 'Magenta'][1]">
                    <xsl:value-of select="locators/locator[color = 'Magenta'][1]/timecode"/>
                </xsl:when>
                <xsl:otherwise>18:00:00;00</xsl:otherwise>
            </xsl:choose>   
        </Bug___Watermark___Call_Us__ONLY__BUG___for_TBNTCC__TC_IN>

2 个答案:

答案 0 :(得分:0)

这是你可以看到它的一种方式:

<xsl:value-of select="concat(translate(substring(timecode, 1, 8), ';', ':'), substring(timecode, 9, 3))" />

答案 1 :(得分:0)

迈克尔的回答可能与您所获得的信息一样好,但如果您的字段总是不一样,那么您可以使用:

<xsl:value-of select="concat(
  substring-before(timecode, ';'), ':',
  substring-before(substring-after(timecode, ';'), ';'), ':',
  substring-after(substring-after(timecode, ';'), ';')
  )"/>

如果您尝试使用它超过前两个;,那么它有点复杂,而且可扩展性要低得多,但它对不同字段的容忍度更高尺寸。