This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: "*|@*|text()" vs. "node()"
In Xalan there will be generated only a warning, no runtime error. The rest
of the transformation will work. It was only an example for the error
message I sent in my first email in this thread.
And the error with the template matching @href I found out. Setting the
first template from match="*|@*|text()" to match="node()" causes the problem
that there is no more template for attributes, only the built-in one,
creating text-nodes. In other templates I have <xsl:apply-templates
select="@*"/>. If another attribute than @href will be processed before
@href, there will be already a text-node at the "new" element. And something
like this causes of course problems:
<element>standard-template for matching attributes creates a text-node
<!-- here shall be added @href -->
</element>
But now I know that "node()" is not equal to "*|@*|text()" and I can change it.
Thanks for your help,
Joerg
> the code below should generate a runtime error as it tries to add an
> attribute to the root node of the result tree, but this doesn't seem
> that close to your original example. there you said that taking @*
> out of an apply templates select attribute caused the error to occur.
> I can't see how that could happen.
>
> David
>
> >
> >
> > This will work with every xml and xsl. You only need an
> <xsl:attribute> without a new element.
> >
> >
> > <?xml version="1.0"?>
> > <root/>
> >
> >
> >
> > <?xml version="1.0"?>
> > <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> > <xsl:template match="root">
> > <xsl:attribute name="test">test</xsl:attribute>
> > </xsl:template>
> > </xsl:stylesheet>
--
System Development
VIRBUS AG
Fon +49(0)341-979-7435
Fax +49(0)341-979-7409
joerg.heinicke@virbus.de
www.virbus.de
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list