Subject: Re: [xsl] xsl:sequence produces error I cant understand From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Sun, 10 Oct 2004 21:36:38 +0100 |
Hi Kenneth, > bash-2.05b$ java net.sf.saxon.Transform seq.xsl seq.xsl > Error at if on line 15 of file:/C:/cygwin/home/zaphod/code/seq.xsl: > Cannot write an attribute when there is no open start tag > Transformation failed: Run-time errors were reported The result of an XSLT transformation (if there is a result) needs to be the document node of a legal XML document (well, technically, a legal data model instance). The XSLT processor automatically generates the document node for you, if you don't tell it to make one explicitly, and anything that you create in the transformation gets added to that document node. Now, document nodes can't have attributes: the only things you can add to them are (as content) elements, text, comments, and PIs. It's an error to try to add attributes to a document node; in fact, the only kind of nodes you can add attributes to are element nodes. The result of your template: <xsl:template match="/"> <xsl:for-each select="document('')/xsl:stylesheet/ns:root/ns:child"> <xsl:if test="@attr = 'y'"> <xsl:sequence select="@attr" /> </xsl:if> </xsl:for-each> </xsl:template> is a sequence of attributes. The error is telling you that these attributes can't be added to the document node that the XSLT processor is creating automatically; to output them, you have to add them to an element. If you do: <xsl:template match="/"> <result> <xsl:for-each select="document('')/xsl:stylesheet/ns:root/ns:child"> <xsl:if test="@attr = 'y'"> <xsl:sequence select="@attr" /> </xsl:if> </xsl:for-each> </result> </xsl:template> then you won't get the error, but will get the result: <result attr="y" /> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] xsl:sequence produces error I, Kenneth Stephen | Thread | [xsl] How does one merge sequences?, Kenneth Stephen |
Re: [xsl] re-ordering nodes/partial, Anton Triest | Date | Re: [xsl] Union of XPath sequences , Jeni Tennison |
Month |