[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] 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
|
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
|