我正在 SharePoint Designer 2010 中编辑 dispform.aspx,以便在公告列表中不显示创建者字段。我注意到过期 ([Expires]) 日期字段已关闭。例子:
我有一个过期日期,2/3/2012
但显示为2012-02-03T04:00:00Z
<xsl:with-param name="dateValue" select="@Expires" />
我正在 SharePoint Designer 2010 中编辑 dispform.aspx,以便在公告列表中不显示创建者字段。我注意到过期 ([Expires]) 日期字段已关闭。例子:
我有一个过期日期,2/3/2012
但显示为2012-02-03T04:00:00Z
<xsl:with-param name="dateValue" select="@Expires" />
不幸的是,XSLT/XPath 1.0 没有日期操作函数(除非您计算类似EXSLT 的“日期和时间”函数,我尽量不计算,因为这些扩展函数并不总是存在)。
如果源和结果格式将保持固定,您可以做一些基本的(虽然丑陋的)字符串组合来完成您想要的。特别是,这个 XPath:
concat(
format-number(substring(., 6, 2), '0'),
'/',
format-number(substring(., 9, 2), '0'),
'/',
substring(., 1, 4)
)
......应该做的伎俩。
当这个基于 XSLT 的验证:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="no" indent="yes" method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:value-of
select="concat(
format-number(substring(., 6, 2), '0'),
'/',
format-number(substring(., 9, 2), '0'),
'/',
substring(., 1, 4)
)" />
</xsl:template>
</xsl:stylesheet>
...适用于这个提议的 XML:
<t>2012-02-03T04:00:00Z</t>
...产生了想要的结果:
2/3/2012