如何在xslt中转换日期格式(mm / dd / yyyy) [英] How to Convert date format in xslt (mm/dd/yyyy)
问题描述
如何在xslt中转换日期格式。我创建的应用程序如下所示
我使用xml:
--------------
Hi,
How to convert date format in xslt. I have created application as shown below
I used xml :
--------------
<TRSummary>
<TravellerRequest>
<TravelRequestNumber>338</TravelRequestNumber>
<OriginatorName>SureshVL RonVL</OriginatorName>
<RequestDate>2015-01-06T17:51:01.67+05:30</RequestDate>
<CostCenter>800</CostCenter>
<ProjectManagerName>Prasannavl Athinavl Athinavl</ProjectManagerName>
<JobNumber>1234</JobNumber>
<ElementNumber>1234</ElementNumber>
<Remarks>remarks</Remarks>
<ExpectedTravelCost>1200</ExpectedTravelCost>
<PMC>Industry international</PMC>
</TravellerRequest>
</TRSummary>
我的xslt文件:
--------------
My xslt file :
--------------
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited by XMLSpy� -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="TRSummary">
<html>
<body>
<table>
<tr>
<td>
<xsl:value-of select="TravellerRequest/RequestDate"/>
</td>
</tr>
</table>
</body>
</html>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
html页面中的
是这样的:
-------------------------------------- -
申请日期:2015-01-07T15:19:23.52 + 05:30
如何将上述日期时间格式转换为mm / dd / yyyy。
i需要输出如下:01/07/2015。
plz指导我。
谢谢,
Ram ...
in html page getting out put like this :
---------------------------------------
Request Date: 2015-01-07T15:19:23.52+05:30
How to convert the above datetime format into mm/dd/yyyy.
i need output like this: 01/07/2015.
plz guide me.
Thanks,
Ram...
推荐答案
根据XSLT版本,你有更多的可能性: http://blog.fpmurphy.com/2008/05/xslt-datetime-formatting.html [ ^ ]
假设如下XML的结构:
Here you have more possibilities depending on XSLT version: http://blog.fpmurphy.com/2008/05/xslt-datetime-formatting.html[^]
Supposing following structure of the XML:
<TRSummary>
<TravellerRequest>
<TravelRequestNumber>338</TravelRequestNumber>
<OriginatorName>SureshVL RonVL</OriginatorName>
<RequestDate>2015-01-06T17:51:01.67+05:30</RequestDate>
<CostCenter>800</CostCenter>
<ProjectManagerName>Prasannavl Athinavl Athinavl</ProjectManagerName>
<JobNumber>1234</JobNumber>
<ElementNumber>1234</ElementNumber>
<Remarks>remarks</Remarks>
<ExpectedTravelCost>1200</ExpectedTravelCost>
<PMC>Industry international</PMC>
</TravellerRequest>
<TravellerRequest>
<TravelRequestNumber>338</TravelRequestNumber>
<OriginatorName>SureshVL RonVL</OriginatorName>
<RequestDate>2015-01-06T17:51:01.67+05:30</RequestDate>
<CostCenter>800</CostCenter>
<ProjectManagerName>Prasannavl Athinavl Athinavl</ProjectManagerName>
<JobNumber>1234</JobNumber>
<ElementNumber>1234</ElementNumber>
<Remarks>remarks</Remarks>
<ExpectedTravelCost>1200</ExpectedTravelCost>
<PMC>Industry international</PMC>
</TravellerRequest>
</TRSummary>
这是一个选项:
This is one option:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:apply-templates select="TRSummary/TravellerRequest"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="RequestDate">
<td>
<xsl:value-of select="format-dateTime(.,'[M01]/[D01]/[Y0001]')" />
</td>
</xsl:template>
<xsl:template match="TravellerRequest">
<tr>
<xsl:apply-templates select="RequestDate"/>
</tr>
</xsl:template>
</xsl:stylesheet>
[更新]
这也是工作,但不是那么整洁:
[Update]
This is also working, but not so neat:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<table>
<xsl:for-each select="TRSummary/TravellerRequest">
<tr>
<td>
<xsl:value-of select="format-dateTime(RequestDate,'[M01]/[D01]/[Y0001]')" />
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
[更新2]
这也适用于XSLT 1.0:
[Update 2]
This works with XSLT 1.0 too:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template name="formatdate">
<xsl:param name="DateTimeStr" />
<xsl:variable name="datestr">
<xsl:value-of select="substring-before(
DateTimeStr,'T') / >
< / xsl:variable >
< xsl:variable name = mm >
< xsl:value-of select = substring(
DateTimeStr,'T')" /> </xsl:variable> <xsl:variable name="mm"> <xsl:value-of select="substring(
datestr,6,2) / >
< / xsl:variable >
< xsl:variable name = dd >
< xsl:value -of 选择 = substring(
datestr,6,2)" /> </xsl:variable> <xsl:variable name="dd"> <xsl:value-of select="substring(
这篇关于如何在xslt中转换日期格式(mm / dd / yyyy)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!