[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: XPath expression that returns the first 10 leaf e

Subject: Re: XPath expression that returns the first 10 leaf element within the airport element?
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 22 Jul 2022 12:19:36 -0000
Re:  XPath expression that returns the first 10 leaf  e
On 22.07.2022 14:15, Martin Honnen martin.honnen@xxxxxx wrote:

On 22.07.2022 13:51, Roger L Costello costello@xxxxxxxxx wrote:

My XML document has an <airport> element:


<airport>
B B B B  <a>blah</a>
B B B  <b>
B B B B B B  <c>blah</c>
B B B  </b>
B B B  ...
</airport>

I want the first 10 leaf elements within the <airport> element (<a>,
<c>, ...).

I thought this XPath would do the job:

<xsl:for-each select="airport//*[not(child::*)][position() le 10]">

But that XPath does not return the first 10 leaf elements. It returns
over nine thousand elements!

What is that XPath expression saying? Clearly it is saying something
different than I thought it was saying.

I think I found the correct XPath expression:

<xsl:for-each select="(airport//*[not(child::*)])[position() le 10]">

Do you agree that that XPath expression will select the first 10 leaf
elements within the <aircraft> element?

An easy to make mistake with positional predicates and // in your
initial attempt but you corrected it well.

I sometimes tend to avoid the trap doing

B airport/descendant::*[not(*)][position() le 10]


I think XPath 3 also allows you


B B airport/innermost(.//*)[position() le 10]

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.