Subject: Re: counting specific nodes
From: "M. David Peterson" <conners_dad@xxxxxxx>
Date: Wed, 15 Oct 2003 14:14:26 -0700
|
James,
the cheapest way to do this would be to count the length of each '@pos'. If
you can guarantee that there is only a single digit between each dot then a
simple statement such as:
<xsl:variable name="rowspan" select="count(//ve/@pos[string-length(.) =
7])"/>
would do the trick. Another option would be:
<xsl:variable name="rowspan"
select="count(//ve/@pos[string-length(substring-after(.,'.')) >= 4])"/>
but if you are going to add additional function calls you might as well just
do the following:
<xsl:variable name="rowspan"
select="count(//ve/@pos[string-length(translate(.,'0123456789','')) = 3])"/>
the above strips out all the numbers leaving only the dots. then a simple
string-length test will tell you how many dots are left.
NOTE: changing your context node will allow you to decide which node to
start your test with.
Best regards,
M.
----- Original Message -----
From: "james walker" <jameswalkerandy@xxxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Wednesday, October 15, 2003 5:23 AM
Subject: counting specific nodes
> given the xml
> <vs>
> <ve pos="1"></ve>
> <ve pos="1.1"></ve>
> <ve pos="1.1.1"></ve>
> <ve pos="1.1.1.1"></ve>
> <ve pos="1.1.1.2"></ve>
> <ve pos="1.1.1.3"></ve>
> <ve pos"1.2"></ve>
> <ve pos="1.2.1"></ve>
> <<ve pos="1.2.1.1"></ve>
> <ve pos="2"></ve>
> <ve pos="2.1"></ve>
> <ve pos="2.1.1"></ve>
> <ve pos="2.1.1.1"></ve>
> </vs>
>
> and given that i am starting on a node with pos=1 (or 2 or 3....), how do
> i
> count the nodes which have position with 3 dots only (e.g. pos=1.1.2.1?)
> and
> start with the current node position. I came up with something like this:
>
> <xsl:variable name="rowspan" select="count(ve[starts-with(@position,
> current()/@position) and contains(...........)])" />
> e.g. for position 1, it should be 4 (1.1.1.1 , 1.1.1.2, 1.1.1.3, 1.2.1.1)
>
> _________________________________________________________________
> Get Hotmail on your mobile phone http://www.msn.co.uk/msnmobile
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|