Re: testing node type
Mike, having just spent a while re-testing, checking the spec and composing a response to your original, I log in and find your new message !!! I agree that the other solution proffered is the right one and I admit that I did not base my solution on the (obscure) fact that comparing empty node sets gives a false result. I did have a look at using generate-id() to get around your second point. The result of this being that it then made your first point true, since the function returns an empty string for an empty node set. In fact, the second point would also occur if the string-value of a following element was equal to the string-value of the next comment. Thanks for this learning experience. Regards Nick Browne Slipstone Ltd Kay Michael wrote: > > > How about : > > > > > > <xsl:when test="following-sibling::node() = > > > following-sibling::comment()"> > > > > That's wrong for two reasons. Firstly it will give "true" if > > the node has no following siblings at all. > > Own goal - sorry! If the node has no following siblings, both node-sets will > be empty, and comparing two empty node-sets using "=" gives "false" > (naturally). > > > Secondly it will give "true" if the string-value > > of the next node is the same as the string-value of the next comment > > This part of the response was correct. (I hope!) > > There's another point, however, which is that even though the test will give > the right answer in almost all circumstances, getting the string-value of a > node can be an expensive operation if it happens to be an element with lots > of descendants. > > To compare nodes for identity, so long as you know that both $x and $y > contain exactly one node, use generate-id($x)=generate-id($y), or > count($x|$y)=1. But in this case the original solution > "following-sibling::node()[self::comment()]" is better. > > Mike Kay > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
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