Pages

Monday, September 2, 2013

Date Formatting in XSLT with extension methods.


 Date.xml
 
<?xml version="1.0" encoding="utf-8" ?>
<XMLSamples>
  <FileDetails>
   <Author>Robert Brown</Author>
   <Date>2013-09-02T15:56:00</Date>
  </FileDetails>
</XMLSamples> 
 
 
Date.xslt
 
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:ms="urn:schemas-microsoft-com:xslt">
  <xsl:template match="XMLSamples">
    <HTML>
      <HEAD>
      </HEAD>
      <BODY>
        <xsl:for-each select="FileDetails">
          <DIV>
            Unformatted Date:
            <xsl:value-of select="Date"/>
          </DIV>
          <DIV>
            Formatted Date:
           <xsl:value-of select="ms:format-date(Date, 'MMM dd, yyyy')"/> 
          </DIV>
        </xsl:for-each>
      </BODY>
    </HTML>
  </xsl:template>
</xsl:stylesheet> 


Show Result
 
 public void one()
    {
        XslCompiledTransform xslt = new XslCompiledTransform();
        xslt.Load(MapPath("xslts//date.xslt"), new XsltSettings(true, false), new XmlUrlResolver());
        XmlReader xr = XmlReader.Create(new StringReader(File.ReadAllText(System.AppDomain.CurrentDomain.BaseDirectory + "xmls//date.xml")));
        StringWriter sw = new StringWriter();
        xslt.Transform(xr, null, sw);
        Literal1.text = sw.ToString();
    } 
 
Output:
 
Unformatted Date: 2013-09-02T15:56:00
Formatted Date: Sep 02, 2013
 
NOTE: 
 
If you are using the extension method, better to get the
result using XslCompiledTransform Transformation code 
instead of using the XML server control. 
 

No comments:

Post a Comment