Subject: Re: [xsl] Order of template match From: Michael Pediaditakis <mp49@xxxxxxxxx> Date: Mon, 07 Oct 2002 14:53:24 +0100 |
Apparently, the example shouldn't work at all since you have to use "@Cond" instead of "Cond". So, your example input, with the following stylesheet:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="Root"> <xsl:apply-templates select="Outer[@Cond='true']"/> </xsl:template>
<xsl:template match="Outer[@Cond='true']"> <b>Outer element</b><br/> <xsl:apply-templates select="Inner[@Cond='true']"/> </xsl:template>
<xsl:template match="Inner[@Cond='true']"> <i>Inner element</i><br/> </xsl:template> </xsl:stylesheet>
<b>Outer element</b> <br> <i>Inner element</i> <br> <i>Inner element</i> <br> <b>Outer element</b> <br> <i>Inner element</i> <br> <i>Inner element</i> <br> <i>Inner element</i> <br> <i>Inner element</i> <br>
Which is what you want. Maybe you should try to check your XSL-T processor... it might not be working properly!
Greets by... .-=AssCoder=-.
Hello Guru's
I have a problem with some display, and must have misunderstood something fundamental, but let me explain:
I have some input XML (simplified):
<Root> <Outer Cond="true"> <Inner Cond="true"/> <Inner Cond="true"/> </Outer> <Outer Cond="true"> <Inner Cond="true"/> <Inner Cond="true"/> <Inner Cond="true"/> <Inner Cond="true"/> </Outer> </Root>
My stylesheet is something like this:
<xsl:template match="Root"> <xsl:apply-templates select="Outer[Cond='true']"/> </xsl:template>
<xsl:template match="Outer[Cond='true']"> <b>Outer element</b><br/> <xsl:apply-templates select="Inner[Cond='true']"/> </xsl:template>
<xsl:template match="Inner[Cond='true']"> <i>Inner element</i><br> </xsl:template>
The result I want (and expected) is: <b>Outer element</b> <i>Inner element</i> <i>Inner element</i> <b>Outer element</b> <i>Inner element</i> <i>Inner element</i> <i>Inner element</i> <i>Inner element</i>
But what I get is this: <b>Outer element</b> <b>Outer element</b> <i>Inner element</i> <i>Inner element</i> <i>Inner element</i> <i>Inner element</i> <i>Inner element</i> <i>Inner element</i>
If I had called Outer, then Inner from Root, I would expect the last result, but I tried structuring the code so it should parse deeply.
How do I get the first result, preferibly using template match.
Sincerely Ragulf Pickaxe :)
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: http://photos.msn.com/support/worldwide.aspx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Order of template match, Ragulf Pickaxe | Thread | RE: [xsl] Order of template match, Michael Kay |
[xsl] 50 XSLT Tips and a Quiz, PerfectXML.com | Date | RE: [xsl] xsl:number counting "cous, Gustaf Liljegren |
Month |