xsl-list
[Top] [All Lists]

RE: Forbidden with several xsl:attribute from xsl:apply-templates?

2003-07-01 10:33:02
Hi

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Erik Beijnoff
Sent: Tuesday, July 01, 2003 8:31 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Forbidden with several xsl:attribute from 
xsl:apply-templates?


I guess the problem is in the "..." that you haven't shown 
us. It is
probably writing elements or text nodes to the output. You 
can't write
an attribute after writing a text node or element child to the same
parent.

Nope. Just attribute output.
 
Note that this includes a whitespace text node.

Thanks for the responses. Actually I tried to put all the 
attributes on one single row, with the calling template also 
on one single row, with no white-space at all betwen the 
elements. No difference. It seems as if the very occurrence 
of two <xsl:call-template> in a row scares the interpreter, 
when the second <xsl:call-template> outputs attributes. My 
guess is on a minor bug, but I may be wrong.

I don't think that your problem resides in the <xsl:apply-templates>, not
directly anyway.
You have <xsl:apply-templates select="." mode="..."/> in a template matching
a <p> element. So you'r changing mode in that element. You didn't show any
template matching <p> in your mode="elementselection", just a template
matching <h1>, so the default templates will be applyied and the text within
the <p> element will be put in the output. If that happens before your
<xsl:attribute> then you'll get your error message.
Check you templates in mode="elementselection" to see if any one of them are
displaying any text, including the default ones.

Hope this helps you



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



<Prev in Thread] Current Thread [Next in Thread>