[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: replacing nodes during xsl:copy-of

Subject: Re: replacing nodes during xsl:copy-of
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Wed, 05 Jan 2011 09:26:21 +0000
Re:  replacing nodes during xsl:copy-of
The xsl:copy-of instruction does an exact copy. It's not capable of doing a modified copy. To do a modified copy, use xsl:apply-templates in conjunction with

(a) a default template that does a shallow copy ("the identity template")

<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

(b) a specific template for the nodes you want to change

<xsl:template match="replace">
   ....
</xsl:template>

Michael Kay
Saxonica

On 05/01/2011 09:22, Mark Anderson wrote:
Hi All

Stuck on a problem trying to copy a nodeset and replace one specific node.

I have something like this in my XML

<clause name="Expenses">
                     <text>the reasonable expenses incurred by the Company and approved by the Customer in providing the Services described herein, including but not limited to travel expenses between the Company's<replace id="local_office">Leeds (UK)</replace>offices and the Customer's offices</text>
</clause>

There may be multiple text elements in a clause and a text element may contain HTML markup.

I am using<xsl:copy-of select="text/node()"/> to copy the contents of the text node(s), but I want to swap out the contents of the<replace> element (i.e. 'Leeds (UK)') based on some logic.

For example, if the contract is for the US office it should result in

the reasonable expenses incurred by the Company and approved by the Customer in providing the Services described herein, including but not limited to travel expenses between the Company's Chicago offices and the Customer's offices

if the contract is for the French office it should result in

the reasonable expenses incurred by the Company and approved by the Customer in providing the Services described herein, including but not limited to travel expenses between the Company's Paris offices and the Customer's offices

Anyone got any suggestions?

TIA

Mark

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.