Re: returning nodes which have a specific child
Hi Michael Thanks very much for that! Worked a treat. I'm relatively new to xsl and to be honest a lot of it seems like a black art. Can you briefly describe what your solution does? I feel daft for asking seeing as it's 13 lines long but I'd have never come up with that. Many thanks Jim On Wed, Jul 1, 2009 at 9:20 AM, Michael Ludwig<mlu@xxxxxxxxxxxxx> wrote: > jim mcgovern schrieb: > >> What I need to do is return a set of nodes that contain a certain >> child node. In the case below I need to return all the nodes that >> contain a child node which have a name of "CONTENT". > >> And what I need to end up with is:- >> >> <folder name="dir2" id="x2"> >> <folder name="dir5" id="x5"> >> <folder name="dir7" id="x7"> >> </folder> >> </folder> >> </folder> > > Hi Jim, > > the following seems to work. Should be rather self-explanatory; if not, > feel free to come back with any questions you might have. > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:template match="@*|node()"><!-- identity template --> > <xsl:copy> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > > <xsl:template match="*" priority="-0.4" ><!-- skip unwanted --> > <xsl:apply-templates select="*"/> > </xsl:template> > > <xsl:template match="*[*[@name='CONTENT']]" ><!-- keep wanted --> > <xsl:copy> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > > </xsl:stylesheet> > > Michael Ludwig
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format