[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Novice Question - matching entire text children

Subject: RE: Novice Question - matching entire text children
From: "David Lee" <dlee@xxxxxxxxxxx>
Date: Mon, 20 Dec 2010 09:30:35 -0500
RE:  Novice Question - matching entire text children
Thanks all...
This gives me something to go on.
I did "try" mikes suggestion in a novice way 
" is to use the string-value of the element node, rather than its text node
"
children.

by writing:

<template match="NODE/string()" >


Which should obviously work right ?  Matches the entire string contents of
NODE concatenating silly chunked up adjacent text and removes commands and
PI's ...

Ha silly me.

I will take to heart the reason WHY I think I need to match on text() ...
maybe I don't.
I won't go into details right now, I'm looking more in directions to
investigate and learn rather than solutions to my problem.

Thanks all




----------------------------------------
David A. Lee
dlee@xxxxxxxxxxx
http://www.xmlsh.org


-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx] 
Sent: Monday, December 20, 2010 9:20 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  Novice Question - matching entire text children


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 don't 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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.