Subject: [xsl] nodes order in union From: philippe drix <phdrix@xxxxxxx> Date: Sat, 17 Nov 2001 19:05:09 +0100 |
Hi, Thanks to David Carlisle, Jeni Tennison, and Michael Kay for their responses to [xsl] match + default namespace. I have now another little problem. I want to write a recursive copy, following the example of the W3C REC XSLT1.0 : <xsl:template match="child::node()" mode="copie"> <xsl:copy> <xsl:apply-templates select="@*" mode="copie"/> <xsl:apply-templates select="node()" mode="copie" /> </xsl:copy> </xsl:template> That works fine. And as expected, the following rule throws a runtime error, because we try to bind attributes to an element which already owns some children : <xsl:template match="child::node() | attribute::*" mode="copie"> <xsl:copy> <xsl:apply-templates select="node()" mode="copie" /> <xsl:apply-templates select="@*" mode="copie"/> </xsl:copy> </xsl:template> But if I transform the rule like this : <xsl:template match="child::node() | attribute::*" mode="copie"> <xsl:copy> <xsl:apply-templates select="node()|@*" mode="copie"/> </xsl:copy> </xsl:template> or like this : <xsl:template match="child::node() | attribute::*" mode="copie"> <xsl:copy> <xsl:apply-templates select="@*|node()" mode="copie"/> </xsl:copy> </xsl:template> no error happens, and the copy is quite correct. Is the XSLT processor (Saxon, actually) cleaver enougth to process the nodes in right order ? Or is there somewhere in Xpath or XSLT a rule which says that in this particulary case, union must yield a node-set where attributes are located before other nodes (I can't find it)? Best regards, Philippe Drix XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] cdata?, Michael Kay | Thread | RE: [xsl] nodes order in union, Oleg Tkachenko |
Re: [xsl] the last substring, Francis Norton | Date | RE: [xsl] nodes order in union, Oleg Tkachenko |
Month |