RE: [xsl] Filter out elements that have one specific sub-element and nothing else

Subject: RE: [xsl] Filter out elements that have one specific sub-element and nothing else
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 21 Feb 2007 13:28:43 -0000
select="listitem[node()[last()=1][self::formatinfo]]"

Michael Kay


> -----Original Message-----
> From: stephan@xxxxxxxxxx [mailto:stephan@xxxxxxxxxx] 
> Sent: 21 February 2007 13:05
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Filter out elements that have one specific 
> sub-element and nothing else
> 
> Hi there,
> 
> I have an XML file like this:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <funnylist>
>     <listitem>
>         <formatinfo color="yellow" />
>         <stuffinside>Info</stuffinside> MoreInfo
>     </listitem>
>     <listitem>
>         <formatinfo color="blue" />
>     </listitem>
>     <listitem>
>         <formatinfo color="red" />EvenMoreInfo
>     </listitem>
> </funnylist>
> 
> I need to filter out this element:
>     <listitem>
>         <formatinfo color="blue" />
>     </listitem>
> 
> The rule: if listitem contains only formatinfo and no other 
> element or text then remove it.
> 
> I have no clue how to formulate the xPath.
> Help appreciated.
> :-) stw

Current Thread