Subject: RE: [xsl] copy XML and add attributes to ancestors of given element From: cknell@xxxxxxxxxx Date: Wed, 12 Mar 2003 14:24:11 -0500 |
[Mac Martine] > In the example provided I am trying to copy all elements, > butwhen I find an element where @task='1', I want to give > all of its ancestors an attribute called 'task' as well. This will do it. I turned the requirement on its head. Rather than find all the ancestors of an element with an attribute "task='1'", I found all the elements with a descendant with an attribute "task='1'". That made it much easier to do. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="yes" encoding="UTF-8" /> <xsl:template match = "/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="node()[descendant::node()/@task='1']"> <xsl:copy> <xsl:attribute name="task" /> <xsl:for-each select="@*"> <xsl:variable name="attrName"><xsl:value-of select="name()" /></xsl:variable> <xsl:attribute name="{$attrName}"><xsl:value-of select="." /></xsl:attribute> </xsl:for-each> <xsl:apply-templates /> </xsl:copy> </xsl:template> <xsl:template match="node()|@*"> <xsl:copy-of select="." /> </xsl:template> </xsl:stylesheet> -- Charles Knell cknell@xxxxxxxxxx - email XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] copy XML and add attribut, Rick Taylor | Thread | RE: [xsl] Re: dynamic XPath?, Passin, Tom |
Re: [xsl] copy XML and add attribut, Rick Taylor | Date | Re: [xsl] saving unicode characters, Mike Brown |
Month |