比较来自世界各地的卖家的域名和 IT 服务价格

格式化和显示 datetime 在 xslt

我有 XML 与数据 datetime:


<a>
<startdate>2011-11-01T00:00:00</startdate>
<enddate>2011-11-30T00:00:00</enddate>
<isrecurring>false</isrecurring>
</a>


我需要进去 xslt 只有以下格式的日期:


01/11/2011 - 30/11/2011


当我这样做时:


<xsl:value-of select="A/StartDate/"> - <xsl:value-of select="A/EndDate/">


我明白:


2011-11-01T00:00:00 - 2011-11-30T00:00:00


如何正确显示它?
</xsl:value-of></xsl:value-of>
已邀请:

喜特乐

赞同来自:

查看字符串函数 XPath:
substring

,
substring-before

等等。

关联:
http://www.w3.org/TR/xpath/%23 ... tions

<xsl:variable name="dt" select="'2011-11-01T12:13:59'"></xsl:variable>
<xsl:value-of select="concat/
substring/$dt, 9, 2/,
'/',
substring/$dt, 6, 2/,
'/',
substring/$dt, 1, 4/
/"></xsl:value-of>

诸葛浮云

赞同来自:

EDIT: 如果您仍然需要使用 XSLT

1.x

, 你可以看看
http://www.exslt.org/date/functions/format-date/
EXSLT date:format-date . 在这种情况下,模式
dd/MM/yyyy

.

如果您正在使用 XSLT

2.0

, 使用该功能更方便
format-dateTime

.

这是你的例子 XSLT 2.0:


<xsl:value-of select="format-dateTime/A/StartDate, '[D01]/[M01]/[Y0001]'/"></xsl:value-of> 
- <xsl:value-of select="format-dateTime/A/EndDate, '[D01]/[M01]/[Y0001]'/"></xsl:value-of>

喜特乐

赞同来自:

除了答案 @Kirill polishchuk如果你用过 XSLT 2.0, 你可以替换 :


substring/replace/$input, "/\d{4}/-/\d{2}/-/\d{2}/", "$3/$2/$1"/, 0, 11/


在哪里
$input

- 这是包含日期的节点的内容。

要回复问题请先登录注册