1

数値の表示方法を変更しようとしている xsl を含む xml ファイルがあります。xml では、すべての数字が 00:12:34 の形式になっています。

最初の 2 つのゼロとコロンを削除して、12:34 と表示するだけです。

部分文字列を使用するのか、10 進形式を使用するのかわかりません。私はこれにかなり慣れていないので、どんな助けも素晴らしいでしょう。

xsl のコードは次のとおりです。

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
    <body>
        <table class="albumTable" cellpadding="0" cellspacing="0" border="0" width="100%">    
            <xsl:for-each select="track">
            <tr>
                <td><xsl:value-of select="duration"/></td>
            </tr>
            </xsl:for-each>
        </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
4

1 に答える 1

5

これは簡単です:

<xsl:value-of select="substring-after(duration, ':')" />

参照: substring-after()W3C XPath 1.0 仕様


これはもう少し防御的です(「時間」の部分が予期せずそうでない場合'00:'):

<xsl:choose>
  <xsl:when test="substring(duration, 1, 3) = '00:')">
    <xsl:value-of select="substring-after(duration, ':')" />
  </xsl:when>
  <xsl:otherwise>
    <xsl:value-of select="duration" />
  </xsl:otherwise>
</xsl:choose>
于 2009-07-30T09:23:28.790 に答える