This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Newbie help needed BAD!!!
- To: xsl-list at mulberrytech dot com
- Subject: Re: Newbie help needed BAD!!!
- From: Oliver Becker <obecker at informatik dot hu-berlin dot de>
- Date: Tue, 29 Aug 2000 11:05:45 +0200 (MET DST)
- Reply-To: xsl-list at mulberrytech dot com
Matt,
> Hi everyone. Man I need help bad...I want to write an xsl that will
> basically copy an xml tree, but allow me to chnage the values of certain
> nodes. For example:
>
> <highlevel>Highest Level
> <innernode>This is an innernode
> <lownode>This is a low-level node</lownode>
> </innernode>
> </highlevel>
>
> I want to copy this, but change the text of <innernode>, such as
>
> <highlevel>Highest Level
> <innernode>I have edited this text
> <lownode>This is a low-level node</lownode>
> </innernode>
> </highlevel>
>
> This seems so trivial, but...I tried :
>
> <xsl:template match="/">
> <xsl:copy-of select="."/>
> </xsl:template>
> <xsl:template match="innernode">
> <innernode>
> I have edited this node
> </innernode>
> </xsl:template>
> but it never applies the innernode template
You shouldn't use xsl:copy-of.
This makes a deep copy without processing the inner elements.
Use xsl:copy and xsl:apply-templates - see the identity transformation
in the XSLT spec http://www.w3.org/TR/xslt#copying
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
Now you can add special templates for special element nodes, such as
innernode. But note: to process lownode you should call xsl:apply-templates
as well. So your template becomes
<xsl:template match="innernode">
<innernode>
I have edited this node
<xsl:apply-templates select="*" /> <!-- only elements, no text nodes
-->
</innernode>
</xsl:template>
I haven't tested it, but it should work.
Cheers,
Oliver
/-------------------------------------------------------------------\
| ob|do Dipl.Inf. Oliver Becker |
| --+-- E-Mail: obecker@informatik.hu-berlin.de |
| op|qo WWW: http://www.informatik.hu-berlin.de/~obecker |
\-------------------------------------------------------------------/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list