在 XSL1.0 中将字符串格式从 9:00:00 (H:MM:SS) 转换为 9:00 (H:MM)



在 XSL 1.0 中更改时间格式时遇到一些问题。

我有时间:9:00:00 (小时:毫米:SS(

但希望它显示为:9:00 (小时:毫米(

不确定它是否有区别,但该字段在我的表格中存储为 STRING 所以我认为我需要修剪最后三个字符,':00'

任何帮助不胜感激

到目前为止的代码:

 <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:ms="urn:schemas-microsoft-com:xslt"
      xmlns:dt="urn:schemas-microsoft-com:datatypes">
<xsl:output method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" />
<xsl:template match="/">

<xsl:for-each select="...">
    <xsl:value-of select="Prop[@prop_name = 'time']/@val" /><br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

假设字符串实际上是"9:00:00",而 HH:MM:SS 只是您添加到问题中的标签,可能最简单的解决方案会使用子字符串

<xsl:value-of select="substring($time, 1, string-length($time) - 3)" />

其中$time是包含"9:00"的变量。

或者,您可以尝试在第二个:字符之前获取子字符串,这可以像这样完成:

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

后者在字符串字面上为"9:00:00 (HH:MM:SS("的情况下有效。

要将其应用于您的样式表,只需替换此...

<xsl:value-of select="Prop[@prop_name = 'time']/@val" /><br />

有了这个...

<xsl:variable name="time" select="Prop[@prop_name = 'time']/@val" />
<xsl:value-of select="substring($time, 1, string-length($time) - 3)" />
<br />

相关内容

  • 没有找到相关文章

最新更新