如何在xslt中转换日期格式(mm / dd / yyyy) [英] How to Convert date format in xslt (mm/dd/yyyy)

查看:311
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆