[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: selecting nodes based on sibling values
Hi Martin Clever.... Wish I could find it myself :) Best regards, Fabien -----Message d'origine----- De : Martin Honnen [mailto:Martin.Honnen@xxxxxx] Envoyi : mardi 23 novembre 2010 16:09 @ : xsl-list@xxxxxxxxxxxxxxxxxxxxxx Objet : Re: selecting nodes based on sibling values Fabien Tillier wrote: > <data> > <row> > <level>40</level> > <keycode>1254.45.12</keycode> > </row> > <row> > <level>50</level> > <keycode>1254.45.12.7</keycode> > </row> > <row> > <level>50</level> > <keycode>1254.45.12.8</keycode> > </row> > <row> > <level>50</level> > <keycode>1254.45.12.9</keycode> > </row> > > <row> > <level>40</level> > <keycode>99.25.6</keycode> > </row> > <row> > <level>50</level> > <keycode>99.25.6.45</keycode> > </row> > <row> > <level>50</level> > <keycode>99.25.6.46</keycode> > </row> > </data> > > What could be the XPath expression to get the maximum number of nodes of > level=50 in data those keycode starts like the level=40 line ? > Here the answer would be 3 as the maximum number of level = 50 nodes for > a given level = 40 is 3 The following outputs "3" for your sample: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:param name="l1" select="'50'"/> <xsl:param name="l2" select="'40'"/> <xsl:key name="k1" match="row" use="level"/> <xsl:template match="/"> <xsl:variable name="groups" as="element(group)*"> <xsl:for-each select="key('k1', $l2)"> <group> <xsl:copy-of select="key('k1', $l1)[starts-with(keycode, current()/keycode)]"/> </group> </xsl:for-each> </xsl:variable> <xsl:value-of select="max($groups/count(row))"/> </xsl:template> </xsl:stylesheet> -- Martin Honnen http://msmvps.com/blogs/martin_honnen/
|
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
|