Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

can  i change dateformat in XSL

Posted on 2001-07-10
6
293 Views
Last Modified: 2008-03-17
I have an XSL stylesheet which gets its data from an XML document.

One of the fields to be displayed is a date field. The xml data has the date in format dd-mm-yyyy. Can I do anything so that the XSL changes this format to dd-MMM-yy ?

So 01-01-2001 should display as 01-Jan-2001 !

Thanx!
Enkay
0
Comment
Question by:enkay022798
  • 3
  • 2
6 Comments
 
LVL 2

Accepted Solution

by:
djokov earned 50 total points
ID: 6269931
In general, YES, but exactly how to do that depends on your xsl code. post it here to see what could be done.
it will be something like:

<xsl:template name="ChangeMonth">
<xsl:param name="Month"/>  <!-- here you will pass month 1-12 -->
<xsl:choose>
<xsl:when test="$Month = '1'">
<xsl:value-of select="Jan"/>
</xsl:when>
<xsl:when test="$Month = '2'">
<xsl:value-of select="Feb"/>
</xsl:when>
...
<xsl:when test="$Month = '12'">
<xsl:value-of select="Dec"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Unrecognized Month!!!"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
0
 
LVL 2

Author Comment

by:enkay022798
ID: 6270017
I have been experimenting and yes, djokov, what you suggested will work fine.

Nevertheless, I was wondering if I could simplify this !

I tried to write a function which will do this using

<xsl:script><![CDATA[ tags. When I put this into my XSL, I get returned nothing !!! It doesnt matter wha I put in the function.

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"
version="1.0">

<xsl:script language="VBScript"><![CDATA[
function GetMeThis()
     GetMeThis = "date"
end function
]]>
</xsl:script>

<xsl:template match="/">
<xsl:eval>GetMeThis()</xsl:eval>
</xsl:template>
</xsl:stylesheet>

I have ripped off the other xsl tags as of now but no matter what ...
This gets me nothing !!!
0
 
LVL 2

Author Comment

by:enkay022798
ID: 6270022
djokov,

I want to leave this Q open for a lil more time. I would like to see some more suggestions, else I will use what you have suggested and award you the points.
0
Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

 
LVL 2

Expert Comment

by:djokov
ID: 6270127
Yes, ok, but if it should be plain xslt, i don't think there is other way... however, let us see what other guys will offer.

cheers.
0
 
LVL 6

Expert Comment

by:wbradney
ID: 6270320
enkay,

If you're going to need to change the format in the future, or maybe have different formats for different people, you might consider using extensions (this is a string replace example, but you'll get the idea):

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                   xmlns:java="http://xml.apache.org/xslt/java"
                   exclude-result-prefixes="java"
               version="1.0">
    <xsl:output method="xml" indent="yes"/>
    <xsl:strip-space elements="*"/>
    <xsl:template match="/">
         <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="test[@att]">
         <xsl:variable name="str" select="@att"/>
         <xsl:variable name="find" select="_string_"/>
         <xsl:variable name="sub" select="_other_"/>
         <xsl:variable name="repl" select="java:Replacer.replace(string($str), string($find), string($sub))"/>
         <test>
              <xsl:attribute name="att"><xsl:value-of select="$repl"/></xsl:attribute>
         </test>
    </xsl:template>
</xsl:stylesheet>

And then you'd write a class Replacer with a method:

public static String replace(String, String, String)

that does whatever you like (in your case date formatting).

Regards,
WMB
0
 
LVL 2

Author Comment

by:enkay022798
ID: 6276972
Thank you everyone !
0

Featured Post

MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Nessus Scan 1 72
write xml in vb.net 2 32
TSQL XML Namespaces 7 22
Help with a Python script converting xml to csv 3 15
The Problem How to write an Xquery that works like a SQL outer join, providing placeholders for absent data on the outer side?  I give a bit more background at the end. The situation expressed as relational data Let’s work through this.  I’ve …
Browsing the questions asked to the Experts of this forum, you will be amazed to see how many times people are headaching about monster regular expressions (regex) to select that specific part of some HTML or XML file they want to extract. The examp…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question