[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Array of all X elements in XML


Subject: Re: [xsl] Array of all X elements in XML
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxxxxxxx>
Date: Sun, 27 May 2012 23:26:54 +0100

The precise scenarios you mention are explained and distinguished  in
Roger Costello's XPath 1.0 tutorial which you can get at
www.xfront.com.



On Sun, May 27, 2012 at 11:21 PM, Jorge <chocolate.camera@xxxxxxxxx> wrote:
> Hi,
>
> When I learned that the Xpath path "A//B" returns all B nodes in A context,
I assumed that appending an N index number would return the Nth node in that
list.
>
> I.e. using the following snippet as the source XML to be transformed
>
>> <article>
>>       <p>1st paragraph</p>
>>       <p>2nd paragraph</p>
>> </article>
>> <article>
>>       <p>3rd paragraph</p>
>>       <p>4rth paragraph</p>
>> </article>
>
> I assumed //p[2] would return only "<p>2nd paragraph</p>", whatever the
hierarchy looks like.
>
> I now see I was wrong, and instead returns all nodes on the Nth position in
their respective tree level. (i.e. returns "<p>2nd paragraph</p>, <p>4rth
paragraph</p>").
>
> In order to mimic the behavior I originally expected, I can only think of
creating a variable, assigning all p element nodes to it, and from then on use
that variable to get the single Nth node inside the variable's context.
>
> I.e., if I wanted to get the "4rth paragraph" irrespectively of the tree, I
could use this XSLT
>
>> <xsl:variable name="PARAGRAPHS" select="//p"/>
>> <copy-of>
>>       <xsl:value-of select="$PARAGRAPHS/p[4]"/>
>> </copy-of>
>
> Is there any other way more straight?


Current Thread
Keywords