XSLT 转换日期时间
Posted
技术标签:
【中文标题】XSLT 转换日期时间【英文标题】:XSLT transformation datetime 【发布时间】:2017-10-01 05:12:22 【问题描述】:我需要在 xslt 中进行日期时间转换,EffectiveDate 应该是当前日期的第二天,ExpirationDate 应该是 EffectiveDate + 一年你能帮帮我吗
输入 XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Name>Test</Name>
</root>
输出 XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<EffectiveDate>2017-05-4 13:05:658+0200</EffectiveDate>
<ExpirationDate>2018-05-4 13:05:658+0200</ExpirationDate>
</root>
xslt 示例:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<root>
<EffectiveDate></EffectiveDate>
<ExpirationDate></ExpirationDate>
</root>
</xsl:template>
</xsl:stylesheet>
【问题讨论】:
你知道如何获取当前日期吗:***.com/questions/26627949/… 【参考方案1】:这取决于您的 XSLT 处理器,但您可以使用脚本解决此问题。此示例使用 C#。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts">
<msxsl:script language="C#" implements-prefix="user">
<msxsl:assembly name="System.Web" />
<msxsl:using namespace="System.Web" />
<![CDATA[
public string GetDate(string DateFormat)
return DateTime.Now.ToString(DateFormat);
public string GetExpirationDate(string DateFormat)
return DateTime.Now.AddYears(1).ToString(DateFormat);
]]>
</msxsl:script>
<xsl:output method="xml" omit-xml-declaration="yes" version="1.0" encoding="UTF-8" />
<xsl:template match="/">
<root>
<EffectiveDate>
<xsl:value-of select="user:GetDate('dddd, dd MMMM yyyy')"/>
</EffectiveDate>
<ExpirationDate>
<xsl:value-of select="user:GetExpirationDate('dddd, dd MMMM yyyy')"/>
</ExpirationDate>
</root>
</xsl:template>
</xsl:stylesheet>
【讨论】:
以上是关于XSLT 转换日期时间的主要内容,如果未能解决你的问题,请参考以下文章