2009-07-30 3 views
1

У меня есть xml-файл с xsl, который я пытаюсь изменить способ отображения чисел. В XML все числа в формате 00:12:34xsl truncate a decimal

Мне нужно удалить первые 2 нулей и двоеточие и просто отобразить 12:34

Я не уверен, если я использую подстроку или десятичный формат. Я довольно новичок в этом, поэтому любая помощь будет изумительной.

код в 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> 

ответ

5

Это просто:

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

См: substring-after() in the W3C XPath 1.0 spec.


Это немного более оборонительный (для случая, когда «часы» часть неожиданно не '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> 
+0

+1 дополнительный для безопасного программирования – Scoregraphic

+0

Спасибо, что было совершенным – 2009-07-30 10:26:13

 Смежные вопросы

  • Нет связанных вопросов^_^