Subject: RE: Xpath to count occurances within a single parent
From: "David White" <davidw@xxxxxxxxxxx>
Date: Mon, 28 Aug 2006 15:09:16 -0500
|
Thanks Mike,
Dave's mention of xsl:number also helped allot! I think this is the final
solutions for the situation I have
Thanks again to everyone for the help!
David White
This gives me a variable that tells me how many cautions are preceding
-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
Sent: Monday, August 28, 2006 2:54 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: Xpath to count occurances within a single parent
In XPath 2.0,
count(preceding::caution intersect ancestor::chapter//caution)
In 1.0, you can simulate the intersect operator using the equivalence
A intersect B ==> A[count(.|B) = count(B)]
But you might be better off using
<xsl:number count="caution" level="any" from="chapter"/>
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: David White [mailto:davidw@xxxxxxxxxxx]
> Sent: 28 August 2006 17:07
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Xpath to count occurances within a single parent
>
> Hello all,
>
> I have the following XML structure
>
> <book>
> <chapter>
> <caution/>
> <caution/>
> <caution/>
> </chapter>
>
> <chapter>
> <sect1>
> <caution/>
> </sect1>
> <caution/>
> <caution/>
> </chapter>
> </book>
>
> What I need is an XPATH statement that counts the number of preceding
> cautions in each chapter. From any given chapter element.
>
> EXAMPLE:
> count(preceding::caution)!= 0
>
> This XPATH works correctly for the first <chapter> but fails on the
> second <chapter> because one <caution> is a child of <sect1>.
>
> Is there a way to count preceding <cautions> within a <chapter>
> element despite nesting?
>
> Thanks,
>
> David White
|