xsl-list
[Top] [All Lists]

Re: [xsl] returning nodes which have a specific child

2009-07-02 04:22:11
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(_at_)as-guides(_dot_)com> 
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="*[*[(_at_)name='CONTENT']]" ><!-- keep wanted -->
   <xsl:copy>
     <xsl:apply-templates select="@*|node()"/>
   </xsl:copy>
 </xsl:template>

</xsl:stylesheet>

Michael Ludwig

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--