Subject: Re: Novice Question - matching entire text children
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Mon, 20 Dec 2010 14:19:56 +0000
|
In principle, an element node is not allowed to have two adjacent text
node children, so unless there are comments or processing instructions
breaking up the text, it should be delivered as a single node.
However, DOM does allow adjacent text nodes, and some processors work on
a DOM tree as input, and I suspect some processors do not always
amalgamate adjacent text nodes as they should.
In any case, it's a good idea to make sure that your code still works if
someone puts a comment in the middle of the text, so it's best not to
assume that all the text of an element is in a single node. Usually the
best way of doing that (unless you are dealing with mixed content) is to
use the string-value of the element node, rather than its text node
children.
Michael Kay
Saxonica
On 20/12/2010 13:09, David Lee wrote:
XSLT 2.0
I have a problem (probably my own misuse of XSLT) but I run into cases where
<xsl:template match="NODE/text()">
</xsl:template>
can match more then once in a row. I have not debugged this yet to
determine if something more complex is really the culprit (probably is),
and the text nodes matched seem to be whitespace " \n\t .."
But before I really start digging maybe someone could tell me offhand what
the *expected* behaviour is ?
If I have an element lik
<ELEM>
some
Text
Here</ELEM>
is
<xsl:template match="NODE/text()">
*supposed* to be called once and only once with the entire text children or
is it possible that it is called multiple times with chunks of data as the
processer sees fit. ?
I know just enough to hurt myself by knowing that in various data models
the CHARACTERS (aka text()) can be arbitrarily chunked but I dont know (or
know where to look) to answer the above definitatively
Thanks for any suggestions
----------------------------------------
David A. Lee
dlee@xxxxxxxxxxx
http://www.xmlsh.org
----------------------------------------
David A. Lee
dlee@xxxxxxxxxxx
http://www.xmlsh.org
|