我正在 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