Subject: Re: testing for position of an element and displaying it accordingly
From: ms <mina_hurray@xxxxxxxxx>
Date: Fri, 19 Jan 2007 07:29:48 -0800 (PST)
|
Hi Alexey:
Thanks for your response.
I will try to explain this a little bit more.
<r1>
<a>test</a>
<a>test2</a>
<b>test test</b>
<a>test3</a>
</r1>
<xsl:template match="r1">
<!-- The mode is applid for any <a> element that
appears before the <b> element in the xml-->
<xsl:if test child::a>
<xsl:apply-templates select="a" mode="test"/>
</xsl:if>
<ol>
<li type="1">
<xls:applly-templates/>
</li>
</ol>
</xsl:template>
So, r1 is formatted with number 1.
<xsl:template match="a" mode="test">
<xsl:apply-templates mode="test"/>
</xsl:template>
This template for <a> is basically for <a> that
appears above the <b> element. It does not apply to
<a> that appears after <b> and so <a> appearing after
<b> is not displayed.
<xsl:template match="b">
<xsl:apply-templates/>
</xsl:template>
My final output applying these templates is:
Test
Test2
1)test test
As you can see , since I am not accounting for the <a>
after <b> it fails to be displayed.
My desired out put is:
Test
Test2
1)test test
test3
How do I check that if there are <a> elements before
<b> element inside <r1>, then they should be displayed
before the <b> element. And if there are <a> elements
after the <b> element, they should be displayed after
the <b> element?
--- Alexey Nickolaenkov <nikolaenkov@xxxxxxxxxxxx>
wrote:
> Hi man
> m> Please let me know if this is possible?
> that's possible.
>
> if your input looks like above and you want to
> produce
>
> m> Test
> m> Test2
> m> 1)test test
> m> test3
>
> the following rules will suit you
>
> <xsl:template match="/">
> <xsl:copy>
> <xsl:apply-templates select="r1"/>
> </xsl:copy>
> </xsl:template>
>
> <xsl:template match="r1">
> <xsl:apply-templates select="node()"/>
> </xsl:template>
>
> <xsl:template match="a">
> <xsl:value-of select="."/>
> </xsl:template>
>
> <xsl:template match="b">
> <xsl:text>1)</xsl:text>
> <xsl:value-of select="."/>
> </xsl:template>
>
>
> but I dont think that this is what you really want..
> Can you describe
> the desired xml output?
>
>
> --
> Alexey
> mailto:nikolaenkov@xxxxxxxxxxxx
>
>
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com
|