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
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
+ Stylus Studio Technical Forum (14621)
+ Website Feedback (249)
- XSLT Help and Discussion (7625)
-> + Use of before and after string (3) Sticky Topic
-> - How do I substitute element ty... (1)
-> + How does one add working days ... (4)
-> - Help, I have existing XLT and... (1)
-> + Need help on XSLT issue - (2)
-> + EDI to XML Conversion (7)
-> - XML To JSON Conversion using X... (1)
-> + Formatting Paragraphs to same ... (2)
-> - Grouping of records (1)
-> + Problems with xsd 1.1 (4)
-> + XML to HL7 mapping (3)
-> + XSLT 3 and Iterate (2)
-> + XSL-FO to PDF preview (3)
-> + java.lang.RuntimeException: Er... (2)
-> + Create Acroforms with Stylus X... (2)
-> + How to change XSLT parameter s... (3)
-> + how to change format of the da... (2)
-> + Search "Next 8 Results " doesn... (2)
-> - Support for Git (1)
-> + newbee (8)
-- [1-20] [21-40] [41-60] Next
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
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>

   
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.