[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
It's not a basic question but it is one that is usually asked only by beginners: most people fall into this trap once, and then steer clear of it in future. The operator `[]` has higher precedence than `/`, so $a/b[1] finds the first b child of every element selected by $a. Michael Kay Saxonica > On 22 Jul 2022, at 12:51, Roger L Costello costello@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > Hi Folks, > > I have an embarrassingly basic question. > > My XML document has an <airport> element: > > <airport> > <a>blah</a> > <b> > <c>blah</c> > </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? > > /Roger
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|