You can override this default template behavior by adding  the following

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

This would allow you not to print the  element text and attribute text.




                                                                           
             Klaus Malorny                                                 
             <[EMAIL PROTECTED]                                             
             ipp.de>                                                    To 
                                       Michael Bauer <[EMAIL PROTECTED]> 
             08/22/2007 02:42                                           cc 
             AM                        xalan-j-users@xml.apache.org        
                                                                   Subject 
                                       Re: Text output between tags        
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Michael Bauer wrote:
> I know I am a newb, but please bear with me:
>
> I have a simple XSL doc:
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

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


> <xsl:template match="/HTML/BODY">
>     Start
> <xsl:apply-templates />
> Stop
> </xsl:template>
> <xsl:template match="[EMAIL PROTECTED]'ffffee']">
>   Starting TD Match
>   <xsl:copy-of select="."/>
>   Ending TD Match
> </xsl:template>
> </xsl:stylesheet>
>
>
> It basically looks for all column nodes with the bgcolor attribute set
> to ffffee.  What's wierd is that, upon running it on the page
> at http://biz.yahoo.com/p/, it outputs not only what I tell it too (the
> literals plus the copy of the TD tags), but also the text between ALL
> tags.  What am I doing wrong?
>
> The foo.out is one such failed attempt to make this work.
>
> BTW, I am using the nekoHTML recommended earlier, and it seems to parse
> the HTML just fine.
>
>
>
> ------------------------------------------------------------------------
>

Hi Michael,

be aware of the default templates. If the style sheet processor does not
find a
matching template for a node, it applies default templates. The default
template
for an element is to apply the templates to all child nodes, and this
includes
text nodes. And guess what -- the default template for text nodes emits the

content to the output.

Hope that helps.

Klaus



Reply via email to