Subject: RE: Passing text() or element nodes
From: Kay Michael <Michael.Kay@xxxxxxx>
Date: Fri, 12 Jan 2001 11:53:35 -0000
|
> I'm having a discussion with Jarno Elovirta at the moment on the
> relative merits of the following XPaths being used to specify the
> values of parameters being passed to a named template:
>
> foo
> foo/text()
> string(foo)
> string(foo/text())
I would discourage use of foo/text() because it will give the "wrong" answer
if the document author decides to include a comment in the middle of the
text; I believe also that some DOM-based products don't always normalize
text nodes as they should.
In Saxon the explicit conversion to a string() can sometimes be helpful,
especially with an expression passed as a parameter. There are a few cases
where it can ensure that only the first node is retrieved. It does no harm,
but is unnecessary, when used in contexts such as <xsl:value-of>. But I'd be
guided by clarity and readability rather than performance.
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|