Subject: RE: getting the text nodes from a set of attribute nodes
From: "Robert P. J. Day" <rpjday@xxxxxxxxxxxxxx>
Date: Thu, 4 Sep 2003 14:53:41 -0400 (EDT)
|
On Thu, 4 Sep 2003, Michael Kay wrote:
> > <a>
> > <b attr="w1 w3 w6">...</b>
> > <b attr="w2 w12 w3 w7">...</b>
> > ... more <b>s here ...
> > </a>
> >
> > when processing an <a> element, i need to calculate the
> > maximum number of whitespace-separated words for any
> > "b/@attr" attribute. so just what you see above, the value
> > would be 4, based on that second <b> child of <a>.
> >
> > AFAICT, this will involve three steps:
> >
> > 1) collect the "b/@attr" attributes (easy)
> > 2) normalize space and word count each of those attribute values
> > (again, easy, stealing from kay, p. 527, the "word-count"
> > template :-)
> > 3) finding the maximum of those values
>
> You can count the words without recursive processing:
>
> $x := normalize-space(@attr)
> $y := translate(@attr, ' ', '')
> $wc := string-length($x) - string-length($y) +1
ok, thanks. that makes things easier.
> > since, as i understand it, you can't have a node-set of just
> > numbers,
>
> Since numbers aren't nodes, how could you have a node-set containing
> numbers?
but that was my point. the sample XSL i showed for calculating the
minimum value was *treating* a node-set as if the individual elements
were numbers, and was comparing them numerically.
<xsl:value-of select="$nodes[not($nodes < .)]"/>
how would this be interpreted? the book refers to this as calculating
"the minimum value of a node set", which to my mind is viewing the
"nodes" as numerical values. i wasn't trying to suggest that numbers
were actual nodes, only that they were being "treated" that way by
the above expression.
rday
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|