This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: How to add a top level element to the result ?
- From: "Samuel Abraham" <samuel dot abraham at db dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 20 Dec 2001 17:37:14 +0800
- Subject: RE: [xsl] How to add a top level element to the result ?
- Reply-to: xsl-list at lists dot mulberrytech dot com
hi,
Interesting.....It worked.
In the apply templates below
<xsl:template match="/">
<Message><xsl:apply-templates /></Message>
</xsl:template>
If I change the expression for match to /A/B//C instead of / ie,similar to the match expression in the next rule then
it wont work.
Why is it so?
A/B//C means match C or all its descendants and then apply the templates.
So what is preventing the tag from being displayed?
thanks
Samuel Abraham
---------------------------------------- Message History ----------------------------------------
From: chris@bayes.co.uk@lists.mulberrytech.com on 12/20/2001 08:58 AM GMT
Please respond to xsl-list@lists.mulberrytech.com
DELEGATED - Sent by: owner-xsl-list@lists.mulberrytech.com
To: xsl-list@lists.mulberrytech.com
cc:
Subject: RE: [xsl] How to add a top level element to the result ?
What about
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Message><xsl:apply-templates /></Message>
</xsl:template>
<xsl:template match="/A/B//C">
<xsl:element name="{@attr1}">
<xsl:apply-templates />
<xsl:value-of select="@attr2"/>
</xsl:element>
</xsl:template>
<xsl:template match="T"/>
</xsl:stylesheet>
Ciao Chris
XML/XSL Portal
http://www.bayes.co.uk/xml
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of
> Samuel Abraham
> Sent: 20 December 2001 08:31
> To: xsl-list@lists.mulberrytech.com
> Subject: [xsl] How to add a top level element to the result ?
>
>
>
> Hi all,
> I have a xml file
> <A>
> <B>
> <C attr1="c" attr2="12" />
> <C attr1="d" >
> <C attr1="f" attr2="15"/>
> </C>
> <C attr1="e" attr2="14" />
> <T attr1="t" attr2="16" />
> </B>
> </A>
>
> and applied 2 rules
>
> <xsl:template match="/A/B//C">
> <xsl:element name="{@attr1}">
> <xsl:apply-templates />
> <xsl:value-of select="@attr2"/>
> </xsl:element>
> </xsl:template>
> <xsl:template match="T"/>
>
> I need to add a top level element to the result.
>
> eg:To add Message as a top level element.
>
> <Message>
> <c>12</c>
> <d>
> <f>15</f>
> </d>
> <e>14</e>
> </Message>
>
> Is it possible to do this?
>
> thanks
> Samuel Abraham
>
>
>
> --
>
> This e-mail may contain confidential and/or privileged
> information. If you are not the intended recipient (or have
> received this e-mail in error) please notify the sender
> immediately and destroy this e-mail. Any unauthorized
> copying, disclosure or distribution of the material in this
> e-mail is strictly forbidden.
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
--
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list