Subject: Re: [xsl] Count() elements in range From: "Pramodh Peddi" <peddip@xxxxxxxxxxxxxxxx> Date: Thu, 16 Oct 2003 10:51:14 -0400 |
hi, this is just a test reply. i noticed that my emails are not reaching the xsl-list, so i just thought to test it. pp. ----- Original Message ----- From: <Chris.Pearson@xxxxxxxxxxxx> To: <XSL-List@xxxxxxxxxxxxxxxxxxxxxx> Sent: Wednesday, October 15, 2003 8:33 PM Subject: [xsl] Count() elements in range > I am wrestling with a problem related to counting a specific range of > elements in a source document. I've tried searching the archives, but I was > unable to locate any past discussions that appeared relevant. > > > Problem: count the number of <element> nodes in the tree starting from the > last <element> or the last <element> whose following-sibling::element does > not have a child <flag>. I think my issue is simply a matter of XPath > expressions, but my brain keeps trying differing versions of recursion with > no luck. > > > Source xml: > <?xml version="1.0" encoding="UTF-8" ?> > <root> > <!--start A series of 1 --> > <element number="A1"> > <flag/> > </element> > <!-- start B series of 4 --> > <element number="B1"> > <flag/> > </element> > <element number="B2"/> > <element number="B3"/> > <element number="B4"/> > <!-- start C series of 2 --> > <element number="C1"> > <flag/> > </element> > <element number="C2"/> > <!-- start D series of 3 --> > <element number="D1"> > <flag/> > </element> > <element number="D2" /> > <element number="D3" /> > </root> > > > Stylesheet so far: > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > <xsl:output method="text" media-type="text/plain"/> > <xsl:strip-space elements="*" /> > > <xsl:template match="/root/element"> > <xsl:choose> > <xsl:when test="(following-sibling::element[1][child::flag]) or > (count(following-sibling::element) = 0)"> > <xsl:call-template name="countFlags"> > <xsl:with-param name="nodeList" select="preceding-sibling::element" > /> > </xsl:call-template> > </xsl:when> > <xsl:otherwise /> > </xsl:choose> > </xsl:template> > > <xsl:template name="countFlags"> > <xsl:param name="nodeList"/> > <!-- do something here to count the preceding-sibling::element nodes up to > the first <element> whose following-sibling::element does not have a <flag> > child. --> > </xsl:template> > </xsl:stylesheet> > > > Thanks in advance, > > > Chris > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Count() elements in range, M. David Peterson | Thread | Re: [xsl] Count() elements in range, M. David Peterson |
[xsl] Encoding problem !!, Dipesh Khakhkhar | Date | Antw: [xsl] Encoding problem !!, Elke Naraschewski |
Month |