xsl-list
[Top] [All Lists]

Re: [xsl] Need help combing two elements

2009-03-26 18:31:38
Is it possible to combine two elements using XSL so that they display as
one?

Sure!!  

Here is a sample of my XML file... 

Here is your XSL

Getting the month in numerals can be done in XSLT1 or XSLT2 .. I did both..
Use month1 for xslt1 and month2 for xslt2.

 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3
org/1999/XSL/Transform" xmlns:myfunct = "myfunctions">
 <xsl:template match="Row">
  <!-- using xslt 2 -->
  <xsl:variable name = "month2" select = 
myfunct:get-month-in-numerals(substring(Cell[1]/text(),1,3))"/>
  <!-- using xslt 1-->
  <xsl:variable name = "month1">
   <xsl:call-template name="get-month-in-numerals">
    <xsl:with-param name="month" select="substring(Cell[1]/text(),1,3)"/>
   </xsl:call-template>
  </xsl:variable>
  <xsl:variable name = "date" select = "substring(Cell[1]/text(),5,2)"/>
  <xsl:variable name = "year" select = "substring(Cell[1]/text(),9,4)"/>
  <xsl:value-of select = "$year"/>
  <xsl:text>-</xsl:text>
  <xsl:value-of select = "$month2"/>
  <xsl:text>-</xsl:text>
  <xsl:value-of select = "$date"/>
  <xsl:text>  </xsl:text>
  <xsl:value-of select = "Cell[2]/text()"/>
 </xsl:template>
 <xsl:function name="myfunct:get-month-in-numerals">
  <!-- xslt 2 solution -->
  <xsl:param name="month"/>
  <xsl:value-of select = "if($month = 'Jan') then '01' else if($month = 'Feb
) then '02' else if($month = 'Mar') then '03' else if($month = 'Apr') then 
04' else if($month = 'May') then '05' else if($month = 'Jun') then '06' else
if($month = 'Jul') then '07' else if($month = 'Aug') then '08' else
if($month = 'Sep') then '09' else if($month = 'Oct') then '10' else
if($month = 'Nov') then '11' else if($month = 'Dec') then '12' else()"/>
 </xsl:function>
 <xsl:template name="get-month-in-numerals">
  <!-- xslt 1 solution-->
  <xsl:param name="month"/>
  <xsl:choose>
   <xsl:when test="$month ='Jan'">
    <xsl:text>01</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Feb'">
    <xsl:text>02</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Mar'">
    <xsl:text>03</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Apr'">
    <xsl:text>04</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='May'">
    <xsl:text>05</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Jun'">
    <xsl:text>06</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Jul'">
    <xsl:text>07</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Aug'">
    <xsl:text>08</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Sep'">
    <xsl:text>09</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Oct'">
    <xsl:text>10</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Nov'">
    <xsl:text>11</xsl:text>
   </xsl:when>
   <xsl:when test="$month ='Dec'">
    <xsl:text>12</xsl:text>
   </xsl:when>
  </xsl:choose>
 </xsl:template>
</xsl:stylesheet>

Hope this helps

Vasu Chakkera

-------Original Message------- 
 
From: Fatbob 
Date: 26/03/2009 21:44:17 
To: XSL List 
Subject: [xsl] Need help combing two elements 
 
Hi everyone, 
 
Is it possible to combine two elements using XSL so that they display as 
One? 
 
Here is a sample of my XML file... 
 
<Row Type="Data"> 
<Cell longDate="1143122100140" ChangeContext="FID=50020" ShowLink="true" 
Status="Normal">Mar 23, 2006</Cell> 
<Cell ChangeContext="FID=50020" ShowLink="true" 
Status="Normal">08:44</Cell> 
</Row> 
 
As you can see the first cell is a date and the second is a time, I need to 
Combine and also convert that date to yyyy-MM-dd HH:mm format. 
 
So the example above would end up displaying like 2006-05-23 08:44. Well the

Time is fine, just the date needs to be converted. 
 
Is this possible to do in XSL? 
 
Thanks! 
 
 
--~------------------------------------------------------------------ 
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list 
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ 
Or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com> 
--~-- 
 

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--