RE: [xsl] create new xml with xsl

Subject: RE: [xsl] create new xml with xsl
From: Cams Ismael <Ismael.Cams@xxxxxxxxxxxxxxx>
Date: Fri, 7 Feb 2003 13:38:59 +0100
Hello,

take a look at http://www.xml.com/pub/a/2002/12/11/ant-xml.html. Maybe this
is what you need.

Kind regards,
Ismaël

-----Original Message-----
From: jandra x [mailto:jandra_7@xxxxxxxxxxx]
Sent: vrijdag 7 februari 2003 13:12
To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] create new xml with xsl


Hi everybody! I have this project for my school and i cant seem to find any 
good solution. I searched the list but nothing seems to help me 
exactly...What i want to do is to create a new xml document from an original

one using a simple xsl and then reuse this xml to ctreate another xml 
document with another xsl. Everything should be the simplest possible. I 
cant seem to work the combination of these xsl's.

My original xml document includes clients from different countries.At first 
i want to create anew xml doc which will have onlyclients from USA and then 
a new xml doc which will have only those from ny. Assume that USA=1 and 
ny=11(all the other countries have different numbers..)

For example this is a part from my original xml:

<client>
  <fname>george</name>
  <lastname>qwerty</lastname>
  <address>1</address>
  <region>12</region>
  <email>hotmail</email>
  <phone>200897456</phone>
</client>

<client>
  <fname>george</name>
  <lastname>liberty</lastname>
  <address>1</address>
  <region>14</region>
  <email>hotmail</email>
  <phone>20084457456</phone>
</client>

<client>
  <fname>nick</name>
  <lastname>klipd</lastname>
  <address>1</address>
  <region>19</region>
  <email>hotmail</email>
  <phone>200855</phone>
</client>

<client>
  <fname>alex</name>
  <lastname>poly</lastname>
  <address>1</address>
  <region>11</region>
  <email>hotmail</email>
  <phone>20013131</phone>
</client>

<client>
  <fname>owen</name>
  <lastname>nitro</lastname>
  <address>7</address>
  <region>71</region>
  <email>yahoo</email>
  <phone>8003698</phone>
</client>

<client>
  <fname>what</name>
  <lastname>who</lastname>
  <address>7</address>
  <region>78</region>
  <email>yahoo</email>
  <phone>98</phone>
</client>

<client>
  <fname>owen</name>
  <lastname>bishop</lastname>
  <address>7</address>
  <region>76</region>
  <email>yahoo</email>
  <phone>800</phone>
</client>
etc....

So with my first xsl i wnat to create this sort of xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="8.xsl"?>
<wow>
<client>
  <fname>george</name>
  <lastname>qwerty</lastname>
  <address>1</address>
  <region>12</region>
  <email>hotmail</email>
  <phone>200897456</phone>
</client>

<client>
  <fname>george</name>
  <lastname>liberty</lastname>
  <address>1</address>
  <region>14</region>
  <email>hotmail</email>
  <phone>20084457456</phone>
</client>

<client>
  <fname>nick</name>
  <lastname>klipd</lastname>
  <address>1</address>
  <region>19</region>
  <email>hotmail</email>
  <phone>200855</phone>
</client>

<client>
  <fname>alex</name>
  <lastname>poly</lastname>
  <address>1</address>
  <region>11</region>
  <email>hotmail</email>
  <phone>20013131</phone>
</client>
</wow>

and then with the second xsl this xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="8.xsl"?>
<wow>
<client>
  <fname>alex</name>
  <lastname>poly</lastname>
  <address>1</address>
  <region>11</region>
  <email>hotmail</email>
  <phone>20013131</phone>
</client>
</wow>
....

what i cant achieve is to cobine the two xsl files.import or include dont 
seem to work. i use if to take only the clients from usa and then copy-of 
select to create the new tree with them and then in the different xsl the 
same idea to take the nyorkers.
The code is something like this:

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";  version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="clients">
<xsl:if test="address='1'">
<xsl:element name="client">
     <xsl:element name="fname"><xsl:copy-of select="./fname"/></xsl:element>
     <xsl:element name="lastname"><xsl:copy-of 
select="./lastname"/></xsl:element>
     <xsl:element name="address"><xsl:copy-of 
select="./address"/></xsl:element>
     <xsl:element name="region"><xsl:copy-of 
select="./region"/></xsl:element>
     <xsl:element name="email"><xsl:copy-of select="./email"/></xsl:element>
     <xsl:element name="phone"><xsl:copy-of select="./phone"/></xsl:element>
</xsl:element>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

(**if this is my correct file..:)
But i cant combined them into one.What should i do with the xml file so that

it will see first the first xsl and then the second???? This is exactly what

my professor wants. He wants us to create 2 diferrent xsl's and to apply 
them somehow to the xml file and the output of the first to go as input to 
the second ant thus create the last xml file.
I'm stuck.Do i have to use java as i've seen in some other messages in the 
list??
PLEASEEEEEEE anyone outthere?
Thank u in advance and sorry for the huge msg..

_________________________________________________________________
STOP MORE SPAM with the new MSN 8 and get 2 months FREE* 
http://join.msn.com/?page=features/junkmail


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread