我正在编辑SharePoint Designer 2010中的dispform.aspx,以便不显示公告列表中的字段创建。 我注意到expir([Expires])日期字段已关闭。 例如:
我的过期日期为2/3/2012
,但显示为2012-02-03T04:00:00Z
<xsl:with-param name="dateValue" select="@Expires" />
答案 0 :(得分:1)
不幸的是,XSLT / XPath 1.0没有日期操作函数(除非你计算EXSLT's "Dates and Times" function之类的东西,我尽量不这样做,因为这些扩展函数并不总是存在)。
如果源和结果格式将保持不变,您可以执行一些基本(虽然难看)的字符串组合来完成您想要的任务。特别是,这个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