Subject: RE: [xsl] wanting to clarify some string functions and string value From: Jarno.Elovirta@xxxxxxxxx Date: Tue, 27 May 2003 16:12:13 +0300 |
Hi, > in many of the XSL books/tutorials i've seen, there are numerous > examples of string functions that involve the current node, as in > > //element[contains(., "fred")] > > or > > //element[starts-with(., "abc")] > > > in examples like this, i'm assuming that "." can be rewritten in > the long form, with either of: > > self::node() > self::* > > although i suspect the former is used more widely. In the above case they can be rewritten like that, but remember if you have //@attribute[contains(., "fred")] this cannot be rewritten to //@attribute[contains(self::*, "fred")] because the principal node type for self axis is element and "--A node test * is true for any node of the principal node type--". See <http://www.w3.org/TR/xpath#node-tests>. > in addition, using the current node reference in a string function > context is implying that the string() function is being used so, > once again, i could rewrite this even more verbosely with any of: > > //element[contains(string(.), "fred")] > //element[contains(string(self::node()), "fred")] > > and so on. yes, i realize it's painful, but i just wanted to > verify that it was equivalent. Yes. > the last point is one that seems to be glossed over a lot, and > that is that the string value of a node is defined as the > concatenation > of all text nodes within the scope of the element's start and end > tags. > > all the examples i've seen invariably show a really simple > example involving a node with no child elements, so the string > value is obvious. but the authors rarely seem to warn about > cases where the self node() might contain multiple descendant > text nodes, which will all contribute to the eventual string value > of the current node, right? > > so just writing > > //element[contains(., "fred")] > > has to take into account any descendant text nodes as well, yes? Yes. Cheers, Jarno - Wumpscut: Wreath of barbs (Album Mix) XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] wanting to clarify some strin, Robert P. J. Day | Thread | RE: [xsl] wanting to clarify some s, Robert P. J. Day |
[xsl] Can I use variables in locati, Chris Ward | Date | Re: [xsl] position() seems always t, Steve |
Month |