Altova Mailing List Archives>Archive Index >xsl-list Archive Home >Recent entries >Thread Prev - [xsl] Identity transform on node-set loaded with document() [Thread Next] Re: [xsl] Identity transform on node-set loaded with document()To: Date: 8/2/2007 8:06:00 AM On 8/2/07, Matt Poff <matt.poff@xxxxxxxxxxxxxxx> wrote: > I've been away from XSLT a while and am stumbling on how to implement > the following: > > My transform imports, using document(), an HTML snippet contain a > populated <head></head> tag. I want to copy this into one of several > result trees I am outputting as is *except* the <title/> tag needs to > be populated with a value. > > Initially I created a named template and sent the loaded node-set to it, > then realised I probably needed an identity transform but all of the > identity transform examples I've found seem to be set-up to operate on > the master document only. What's the best way to carry out this task? > Can I do an identity transform with a named template? > > I'm sure there's a fairly simple solution but it's passing me by. Create the new <head> by using a mode, and store it in a variable to make it easy to copy to all of the places that its needed: <xsl:variable name="newHead"> <xsl:apply-templates select="doc('head.xml')" mode="processHead"/> </ <xsl:template match="@*|node()" mode="processHead"> <xsl:copy> <xsl:apply-templates select="@*|node()" mode="processHead"/> </ </ <xsl:template match="title" mode="processHead"> <title>My new title</title> </ and then just copy it where you need it eg: <xsl:copy-of select="$newHead"/> cheers andrew -- http://andrewjwelch.com | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
