Subject: Re: distinct values by xslt
From: Syd Bauman <Syd_Bauman@xxxxxxxxx>
Date: Wed, 18 May 2011 11:36:40 -0400
|
I'm afraid this is too confusing to delve into right now, but I'm
wondering about the test for a preceding link (line 07). Do you
imagine that it is testing from a current node of a <link> that has
type=figure? It's not -- the current node is still the <p> that fired
the whole template to match.
01. <xsl:template match="p">
02. <p class="Para_indented">
03. <xsl:apply-templates/>
04. </p>
05. <xsl:if test="link[@type='figure']">
06. <xsl:variable name="figid" select="link[@type='figure']/@rid"/>
07. <xsl:if test="not(preceding::link[@type='figure'][@rid=$figid])">
08. <xsl:apply-templates select="//object[@id=$figid]"/>
09. </xsl:if>
10. </xsl:if>
11. <xsl:if test="link[@type='table']">
12. <xsl:variable name="tableid" select="link[@type='table']/@rid"/>
13. <xsl:if test="not(preceding::link[@type='table'][@rid=$tableid])">
14. <xsl:apply-templates select="//object[@id=$tableid]"/>
15. </xsl:if>
16. </xsl:if>
17. </xsl:template>
Also I wonder if you are doing what you really want in line 06. The
variable figid is getting set to the sequence of all @rid values of
<link> children of the current <p> that match the criteria (have a
type= of 'figure'). For the test data, that means the string value of
figid is "f2 f3 f1".
> Anyone have any idea about to find out distinct attribute value by
> xslt. Figure 2 and Figure 3 are getting deleted by the logic
> provided by me as shown in the below XSLT. Below are the require
> things
>
> XSLT
> <xsl:template match="p">
> <p class="Para_indented">
> <xsl:apply-templates/>
> </p>
> <xsl:if test="link[@type='figure']">
> <xsl:variable name="figid" select="link[@type='figure']/@rid"/>
> <xsl:if test="not(preceding::link[@type='figure'][@rid=$figid])">
> <xsl:apply-templates select="//object[@id=$figid]"/>
> </xsl:if>
> </xsl:if>
> <xsl:if test="link[@type='table']">
> <xsl:variable name="tableid" select="link[@type='table']/@rid"/>
> <xsl:if test="not(preceding::link[@type='table'][@rid=$tableid])">
> <xsl:apply-templates select="//object[@id=$tableid]"/>
> </xsl:if>
> </xsl:if>
> </xsl:template>
>
>
> Input
> <p>First One of the primary goals (<link rid="f1" type="figure">Fig.
> 1</link>).</p>
> <p>second (see <link rid="f2" type="figure">Fig. 2</link>) and thos and
> <link rid="f3" type="figure">Fig. 3</link>). supporting the prediction that
> these species accelerate their development at the expense of growth (<link
> rid="f1" type="figure">Fig. 1</link>).</p>
>
>
> Required OUTPUT
> <p class="Para_Indented">First One of the primary goals (<a class="figcit"
> href="#fig1">Fig. 1</a>).</p>
> <div class="divFigure">
> <table class="Figure" width="100%" align="center" border="0" id="fig1">
> </table>
> </div>
> <p class="Para_Indented">second (see <a class="figcit" href="#fig2">Fig.
> 2</a>) and thos and <a class="figcit" href="#fig3">Fig. 3</a>). supporting
> the prediction that these species accelerate their development at the
> expense of growth (<a class="figcit" href="#fig1">Fig. 1</a>).</p>
> <div class="divFigure">
> <table class="Figure" width="100%" align="center" border="0" id="fig2">
> </table>
> </div>
> <div class="divFigure">
> <table class="Figure" width="100%" align="center" border="0" id="fig3">
> </table>
> </div>
>
> CURRENT OUTPUT
> <p class="Para_Indented">First One of the primary goals (<a class="figcit"
> href="#fig1">Fig. 1</a>).</p>
> <div class="divFigure">
> <table class="Figure" width="100%" align="center" border="0" id="fig1">
> </table>
> </div>
> <p class="Para_Indented">second (see <a class="figcit" href="#fig2">Fig.
> 2</a>) and thos and <a class="figcit" href="#fig3">Fig. 3</a>). supporting
> the prediction that these species accelerate their development at the
> expense of growth (<a class="figcit" href="#fig1">Fig. 1</a>).</p>
|