Subject: Re: [xsl] selecting nodes based on sibling values From: Michael Kay <mike@xxxxxxxxxxxx> Date: Tue, 23 Nov 2010 15:48:48 +0000 |
Michael Kay Saxonica
Hum. This one doesn't work. I get 5 as an answer... I assume the keycode should be used somewhere within the for-each-group
-----Message d'origine----- De : Michael Kay [mailto:mike@xxxxxxxxxxxx] Envoyi : mardi 23 novembre 2010 16:25 @ : xsl-list@xxxxxxxxxxxxxxxxxxxxxx Objet : Re: [xsl] selecting nodes based on sibling values
<xsl:variable name="gpsizes"> <xsl:for-each-group select="row" group-starting-with="row[level='40']"> <xsl:sequence select="count(current-group()) - 1"/> </xsl:for-each-group> </xsl:variable> <xsl:value-of select="max($gpsizes)"/>
Michael Kay Saxonica
On 23/11/2010 14:45, Fabien Tillier wrote:Hi List. Let's say I have an XML like below...
<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 I have tried several things, but I am stuck.... (I am using XSLT 2.0 on Saxon)
Thanks for lending me some neurons... Best regards, Fabien
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] selecting nodes based on , Fabien Tillier | Thread | RE: [xsl] selecting nodes based on , Fabien Tillier |
RE: [xsl] selecting nodes based on , Fabien Tillier | Date | RE: [xsl] selecting nodes based on , Fabien Tillier |
Month |