xsl-list
[Top] [All Lists]

Re: [xsl] De Normalize XML using XSLT

2009-10-14 17:28:13
Thank you .


On Wed, Oct 14, 2009 at 1:48 PM, G. Ken Holman
<gkholman(_at_)cranesoftwrights(_dot_)com> wrote:
At 2009-10-14 13:31 -0700, Senthilukvelaan wrote:

I would like to know is there any way to group the nodes of  the xml
using the node name matching pattern starts-with like the sample
provided.

By using the starts-with() function in a predicate.  But since you've said
"starts with" then I'm assuming you know in advance what all of the
substitutions are.

I hope the example below helps ... but I suspect you haven't described your
requirement precisely.

. . . . . . . . Ken


t:\ftemp>type s1.xml
<consignment>
<SHIP_NAME1>Suresh</SHIP_NAME1>
<SHIP_NAME3/>
<SHIP_NAME4/>
<SHIP_COLONIA/>
<SHIP_CITY> Newyork </SHIP_CITY>
<SHIP_POST_CODE>L3R 1A3</SHIP_POST_CODE>
<SHIP_STREET>1010 Woodbine Ave</SHIP_STREET>
<SHIP_COUNTRY>CA</SHIP_COUNTRY>
<SHIP_COUNTRY_NAME>Canada</SHIP_COUNTRY_NAME>
<SHIP_REGION>ON</SHIP_REGION>
<SHIP_REGION_DESC>Ontario</SHIP_REGION_DESC>
<BILL_NAME1>Suresh</BILL_NAME1>
<BILL_NAME2/>
<BILL_NAME3/>
<BILL_NAME4/>
<BILL_STREET>7225 woodbine street</BILL_STREET>
<BILL_COLONIA/>
<BILL_CITY>Newyork</BILL_CITY>
<BILL_REGION>ON</BILL_REGION>
<BILL_REGION_DESC>Ontario</BILL_REGION_DESC>
<BILL_COUNTRY>CA</BILL_COUNTRY>
<BILL_COUNTRY_NAME>Canada</BILL_COUNTRY_NAME>
<BILL_POST_CODE>L3R 1A3</BILL_POST_CODE>
<BILL_TELF1>12345</BILL_TELF1>
<BILL_TELF2EXTN/>
</consignment>

t:\ftemp>call xslt s1.xml s.xsl s1.out

t:\ftemp>type s1.out
<?xml version="1.0" encoding="utf-8"?>
<consignment>
  <SHIPMENT>
     <SHIP_NAME1>Suresh</SHIP_NAME1>
     <SHIP_NAME3/>
     <SHIP_NAME4/>
     <SHIP_COLONIA/>
     <SHIP_CITY> Newyork </SHIP_CITY>
     <SHIP_POST_CODE>L3R 1A3</SHIP_POST_CODE>
     <SHIP_STREET>1010 Woodbine Ave</SHIP_STREET>
     <SHIP_COUNTRY>CA</SHIP_COUNTRY>
     <SHIP_COUNTRY_NAME>Canada</SHIP_COUNTRY_NAME>
     <SHIP_REGION>ON</SHIP_REGION>
     <SHIP_REGION_DESC>Ontario</SHIP_REGION_DESC>
  </SHIPMENT>
  <BILLING>
     <BILL_NAME1>Suresh</BILL_NAME1>
     <BILL_NAME2/>
     <BILL_NAME3/>
     <BILL_NAME4/>
     <BILL_STREET>7225 woodbine street</BILL_STREET>
     <BILL_COLONIA/>
     <BILL_CITY>Newyork</BILL_CITY>
     <BILL_REGION>ON</BILL_REGION>
     <BILL_REGION_DESC>Ontario</BILL_REGION_DESC>
     <BILL_COUNTRY>CA</BILL_COUNTRY>
     <BILL_COUNTRY_NAME>Canada</BILL_COUNTRY_NAME>
     <BILL_POST_CODE>L3R 1A3</BILL_POST_CODE>
     <BILL_TELF1>12345</BILL_TELF1>
     <BILL_TELF2EXTN/>
  </BILLING>
</consignment>
t:\ftemp>type s.xsl
<?xml version="1.0" encoding="US-ASCII"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
               version="1.0">

<xsl:output indent="yes"/>

<xsl:template match="consignment">
 <consignment>
   <SHIPMENT>
     <xsl:copy-of select="*[starts-with(local-name(.),'SHIP_')]"/>
   </SHIPMENT>
   <BILLING>
     <xsl:copy-of select="*[starts-with(local-name(.),'BILL_')]"/>
   </BILLING>
 </consignment>
</xsl:template>

</xsl:stylesheet>

t:\ftemp>rem Done!





--
Upcoming: hands-on code list, UBL, XSLT, XQuery and XSL-FO classes
in Copenhagen Denmark and Washington DC USA, October/November 2009
Interested in other classes?  http://www.CraneSoftwrights.com/s/i/
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson:    http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview:  http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>