Subject: Re: Beginners question: Koala XSL-Engine and <xsl:process select> From: Tyler Baker <tyler@xxxxxxxxxxx> Date: Thu, 22 Oct 1998 15:32:32 -0400 |
Steve Dahl wrote: > Jeremy CALLES wrote: > > > Martin Bernauer wrote: > > > > > > Hello, > > > > > > I have a XML document containing the following lines: > > > > > > <collection> > > > <a>aaa</a> > > > <b>bbb</b> > > > <c>ccc</c> > > > </collection> > > > > > > and a XSL document that contains: > > > > > > <xsl:template match="collection"> > > > <P> > > > <xsl:process select="c"/> > > > <xsl:process select="b"/> > > > <xsl:process select="a"/> > > > </P> > > > </xsl:template> > > > > > > When I run the Koala XSL-engine with those two files i get the output > > >"aaabbbccc" but actually the output should be "cccbbbaaa" shouldn't it? What's > > >wrong? > > > > > > > Yes, you do it wrong. I explain: > > > > <collection> is the root of your document, so It couldn't be matched by > > an XSL processor (according to the WD 1.0) by is name. > > That's not what I understand when I read the WD 1.0. According to Section 2.4.1, > which describes the root node, the root node in this case is not the <collection> > element, but is an "invisible" node whose only child element is the <collection> > element. > > As such, the pattern "/" does not refer to the same node as "collection", but it > refers to the parent node of "collection". > > Assuming that's correct, the output of the example should have been "cccbbbaaa", > which is the result produced by XT. I haven't tried any other public XSL processors > to see what they do. What is the use in this? In XML there is only one root element node (the document element) so as far as processing is concerned, it seems pretty silly to have an extra invisible element node as the parent of the document element since there will always be one and only one document element. Furthermore, this makes you have to always explicitly refer to the document element in any match or select pattern, .e.g. <xsl:template match="/"> <xsl:process select="collection/a"/> <xsl:process select="collection/b"/> <xsl:process select="collection/c"/> <xsl:template> Making stylesheet designers do this makes no sense in my opinion. The other alternative is the following. Can someone please explain to me the rationale of why the document element is NOT the root node. <xsl:template match="collection"> <xsl:process select="a"/> <xsl:process select="b"/> <xsl:process select="c"/> <xsl:template> Tyler XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Beginners question: Koala XSL-E, Steve Dahl | Thread | Re: Beginners question: Koala XSL-E, Tyler Baker |
Re: Beginners question: Koala XSL-E, Steve Dahl | Date | RE: Beginners question: Koala XSL-E, Ed Nixon |
Month |