XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Diana SininaSubject: substring
Author: Diana Sinina
Date: 07 Mar 2006 09:59 AM
I work on .net,
I have a DB field that returns date + time "2/16/2006 11:56:38 AM", I need to substring it to show only date. How do I do that in XSL?

Thanks

Postnext
(Deleted User) Subject: substring
Author: (Deleted User)
Date: 07 Mar 2006 10:33 AM
Hi, Diana. You can use this XPath expression to trim the date and time as you need. For example:

substring-before('2/16/2006 11:56:38 AM', ' ')

You can find one example of this usage in the following thread:

http://www.stylusstudio.com/SSDN/default.asp?action=9&read=331&fid=23

Hope this helps.

David Foster
Stylus Studio Team

Postnext
Diana SininaSubject: substring
Author: Diana Sinina
Date: 07 Mar 2006 10:35 AM
Thank you!!

Posttop
Mike DiRenzoSubject: substring
Author: Mike DiRenzo
Date: 08 Mar 2006 04:47 PM
Diania:

If you are using IE that supports .NET, you can use a user-defined-function. This function can be called via a name-space prefix that you define. In this example, I use a date-time format that you described. I pass this in to a template function. The template function calls the c# function which formats the date value accordingly. Moreover, you can make the template more functional by allowing other parameters. For example, currently it only converts a valid date-time value to a shortdate. What if I wanted something else like ISO-8601 format? I can either create another template function or add additional parameter tothe exisiting template function which I can test. Depending on the test results, I can branch within the template function using a xsl:choose construct and execute other functions.

Good luck!


-Mike DiRenzo
web: www.businessautomationsystemsinc.com
email: info@businessautomationsystemsinc.com

<datefun>
<date_test>
<short_date_convert>12/11/2005 9:00:00 AM</short_date_convert>
</date_test>
</datefun>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:cs="urn:my-funcs:xslt-csharp"
exclude-result-prefixes="cs ms">

<ms:script language="C#" implements-prefix="cs">

string GetCurrentShortDate()
{
DateTime dt = DateTime.Now;
return dt.ToShortDateString();
}

string GetShortDate(string LongDateTimeString)
{
try
{
DateTime dt = DateTime.Parse(LongDateTimeString);
return dt.ToShortDateString();
}
catch
{
throw new System.FormatException();
}
}
</ms:script>

<xsl:template match="/">
<xsl:for-each select="datefun/date_test">
<date_test>
<udf_short_date>
<current_short_date>
<xsl:value-of select="cs:GetCurrentShortDate()"/>
</current_short_date>
<short_date_convert_pre>
<xsl:value-of select="short_date_convert"/>
</short_date_convert_pre>
<short_date_convert_post>
<xsl:call-template name="DateFormat">
<xsl:with-param name="inVal" select="short_date_convert"/>
</xsl:call-template>
</short_date_convert_post>
</udf_short_date>
</date_test>
</xsl:for-each>
</xsl:template>

<xsl:template name="DateFormat">
<xsl:param name="inVal"/>
<xsl:value-of select="cs:GetShortDate($inVal)"/>
</xsl:template>

</xsl:stylesheet>

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.