xsl-list
[Top] [All Lists]

Re: [xsl] testing for position of an element and displaying it accordingly

2007-01-19 08:29:58
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(_at_)actimind(_dot_)com>
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(_at_)actimind(_dot_)com



--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





 
____________________________________________________________________________________
Yahoo! Music Unlimited
Access over 1 million songs.
http://music.yahoo.com/unlimited

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--