xsl-list
[Top] [All Lists]

Re: [xsl] Children with the same name

2011-11-21 10:43:52
On 21 November 2011 16:34, Merrilees, David
<David(_dot_)Merrilees(_at_)uk(_dot_)tesco(_dot_)com> wrote:
Hi

I'm stuck with an Xpath. How can I select child nodes with the same name? The 
names are arbitrary. So far I have this, which does not work:

Input

<array>
 <item/>
 <nope/>
 <item>4</item>
 <item>5</item>
 <wibble/>
 <item>six</item>
 <wibble>stuff</wibble>
 <item>item</item>
 <no/>
</array>

Desired output

<array>
 <item>4</item>
 <item>5</item>
 <wibble/>
 <item>six</item>
 <wibble>stuff</wibble>
 <item>item</item>
</array>

Hi,

Define a key:

<xsl:key name="elements-by-name" match="*" use="name()"/>

Tweak that match pattern if needed, then you can do:
        
<xsl:apply-templates select="array/*[exists(key('elements-by-name',
name())[2])]"/>

cheers
andrew

-- 
Andrew Welch
http://andrewjwelch.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>
--~--

<Prev in Thread] Current Thread [Next in Thread>