Hi all:
I got so many peopel help but I can't get solution
for my problem yet. I need fix it asap so please help
me ! question is : How I can find relatiove position
on the node which satify the condition ? I try to set
the variable called index and increment index value
when I call template but the index value is always 1
I work on this problems for several days, I wish I can
get help for solution.
Thanks
xml file:
<Lists>
<List >
<List_ID>10</List_ID>
<Title>A</Title>
<Parent_ID>1</Parent_ID>
</List>
<List>
<List_ID>11</List_ID>
<Title>A1</Title>
<Parent_ID>10</Parent_ID>
</List>
<List >
<List_ID>12</List_ID>
<Title>B</Title>
<Parent_ID>20</Parent_ID>
</List>
<List >
<List_ID>13</List_ID>
<Title>A2</Title>
<Parent_ID>10</Parent_ID>
</List>
<List >
<List_ID>14</List_ID>
<Title>C</Title>
<Parent_ID>1</Parent_ID>
</List>
</Lists>
xsl:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="Lists" >
<xsl:apply-templates>
<xsl:with-param name="ValidCount"
select="number(count(List)-count(List[Parent_ID=../List/List_ID]))"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="List">
<xsl:param name="ValidCount"/>
<xsl:variable name="self" select="."/>
<xsl:variable name="index" select="0"/>
<xsl:choose>
<xsl:when test="Parent_ID=1 or
not(preceding-sibling::List[List_ID = $self/Parent_ID]
or following-sibling::List[List_ID =
$self/Parent_ID])">
<xsl:call-template name="formatTitle">
<xsl:with-param name="index" select="$index+1"/>
<xsl:with-param name="TotalCount"
select="$ValidCount"/>
<xsl:with-param name="Title" select="Title"/>
</xsl:call-template>
<xsl:call-template name="findChildNode">
<xsl:with-param name="ParentID" select="List_ID"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="findChildNode">
....this part work
</xsl:template>
<xsl:template name="formatTitle">
<xsl:param name="index" />
<xsl:param name="TotalCount"/>
index: <xsl:value-of select="$index"/>
<xsl:param name="Title"/>
<xsl:choose>
<xsl:when test="$TotalCount=1 or $index=1">
<b><xsl:value-of select="$Title"/></b>
</xsl:when>
<xsl:when test="$index =
$TotalCount -1">
<b> and <xsl:value-of
select="$Title"/></b>
</xsl:when>
<xsl:when test="$index =
$TotalCount">
<b> <xsl:value-of
select="$Title"/></b>
</xsl:when>
<xsl:otherwise>
<b>; <xsl:value-of
select="$Title"/></b>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
______________________________________________________________________
Post your free ad now! http://personals.yahoo.ca
--~------------------------------------------------------------------
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>
--~--