Re: I don't understand... text is always output?

Subject: Re: I don't understand... text is always output?
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 26 Sep 1999 17:12:02 -0400
At 99/09/26 13:35 -0700, Terris wrote:
An empty stylesheet returns the text of all elements:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0";>
</xsl:stylesheet>

This also happens when the stylesheet is not empty.. for example, when
it contains templates.

This is not intuitive to me. What was the thinking behind this?

There are built-in templates described in XSLT-19990813 in section 5.8, in particular:


There is also a built-in template rule for text and attribute nodes that copies text through:

<xsl:template match="text()|@*">
  <xsl:value-of select="."/>
</xsl:template>

I only want text in particular elements to be output.

Then you will have to override the built-in template.


Are there other things that get output by default?

I'll ask you to see all the details of 5.8 rather than copy them here.


Is there a way to filter out text besides adding the following
template?

<xsl:template match="text()"/>

That is how I would do it. I suppose another way is to avoid the processing of text nodes in the source tree, but that would be harder to maintain than just overriding the built-in template.


I hope this helps.

................ Ken

--
G. Ken Holman                    mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.             http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999   (Fax:-0995)
Website:  XSL/XML/DSSSL/SGML services, training, libraries, products.
Practical Transformation Using XSLT and XPath      ISBN 1-894049-01-2
Next instructor-led training:  1999-11-08, 1999-11-09, 1999-12-05/06,
                             1999-12-07, 2000-02-27/28, 2000-05-11/12


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread