xsl-list
[Top] [All Lists]

RE: getting the text nodes from a set of attribute nodes

2003-09-04 11:16:29
  <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


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?

In XPath 2.0 of course you can have sequences of strings or numbers
which makes this kind of thing very much easier.

Michael Kay



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list