This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Order of template match
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 7 Oct 2002 15:36:54 +0100
- Subject: RE: [xsl] Order of template match
- Reply-to: xsl-list at lists dot mulberrytech dot com
Write @Cond, not Cond, to select an attribute.
But I don't think your stylesheet as written should output anything at
all.
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of
> Ragulf Pickaxe
> Sent: 07 October 2002 14:00
> To: XSL-List@lists.mulberrytech.com
> Subject: [xsl] Order of template match
>
>
> 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
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list