This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: xsl:copy-reposting
- From: "Joeri Belis" <joeri dot belis at nollekens dot be>
- To: <xsl-list at lists dot mulberrytech dot com>
- Cc: <subbu at boltblue dot com>
- Date: Thu, 8 Aug 2002 10:46:09 +0200
- Subject: Re: [xsl] xsl:copy-reposting
- References: <20020704142223.23699.qmail@webmail25.rediffmail.com> <003101c104a5$196f3d00$a797883e@ROSEBUD> <1028794791.3d5229a71c4aa@www.boltblue.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates select="students"/>
</xsl:template>
<!-- ********************************************* -->
<xsl:template match="students">
<xsl:apply-templates select="student"/>
</xsl:template>
<!-- ********************************************* -->
<xsl:template match="student">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="*"/>
</xsl:copy>
<xsl:if test="address = 'YYY'">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="*[name() != 'address']"/>
<xsl:apply-templates select="address"/>
</xsl:copy>
</xsl:if>
</xsl:template>
<!-- ********************************************* -->
<xsl:template match="address">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:value-of select="'changed-YYYY'"/>
</xsl:copy>
</xsl:template>
<!-- ********************************************* -->
<!-- ********************************************* -->
</xsl:stylesheet>
----- Original Message -----
From: <subbu@boltblue.com>
To: <xsl-list@lists.mulberrytech.com>
Sent: Thursday, August 08, 2002 10:19 AM
Subject: [xsl] xsl:copy-reposting
> hello people.. Sorry for reposting...
> following the suggestion given by Jeff and Mike,
> I decided to go for the two-phase transformation..
> I am stuck up in the very first phase :)
> The following is my doubt.
> I have the following xml with me..
> <?xml version="1.0"?>
> <students>
> <student id = "101">
> <name>A</name>
> <address>XXX</address>
> </student>
> <student id = "201">
> <name>B</name>
> <address>YYY</address>
> </student>
> <student id = "301">
> <name>C</name>
> <address>XXX</address>
> </student>
> <student id = "401">
> <name>E</name>
> <address>YYY<address>
> </student>
> </students>
>
> now what i have to do is .. convert this into an xml in such a way that if
> address is 'YYY' then add the same node again with a changed address ..
> so what i want is after the
>
> <student id = "201">
> <name>B</name>
> <address>YYY</address>
> </student>
>
> i want another Student Element Set which looks like
>
> <student id = "201">
> <name>B</name>
> <address>Changed-YYY</address>
> </student>
>
> I looked at the archives came close to the solution but dint get what i
> wanted :(...
> the final transformed XML would look like ..
>
> <students>
> <student id = "101">
> <name>A</name>
> <address>XXX</address>
> </student>
> <student id = "201">
> <name>B</name>
> <address>YYY</address>
> </student>
> <student id = "201">
> <name>B</name>
> <address>Changed-YYY</address>
> </student>
> <student id = "301">
> <name>C</name>
> <address>XXX</address>
> </student>
> <student id = "401">
> <name>E</name>
> <address>YYY<address>
> </student>
> <student id = "401">
> <name>E</name>
> <address>Changed-YYY<address>
> </student>
> </students>
>
> The Changed-YYY is something i read from a template passing YYY as
parameter.
> its a paramater ( $Changed-YYY)
>
> I am sorry to trouble you .. but wud be happy if someone suggests me a way
to
> come out of it
> Thanx a ton!!
>
>
>
>
>
> --------------------------------------------------------------
> Sent with "Me-Mail", Boltblue's FREE mobile messaging service.
> http://www.boltblue.com
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list