在 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 />