Re: [xsl] pulling object at their correponsing callout

Subject: Re: [xsl] pulling object at their correponsing callout
From: Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 24 Feb 2011 14:13:58 -0500
This looks pretty close to a complete solution (along with a template
to suppress the "object" elements in their original locations).  I'd
just incorporate the "tokenize" function to break the @rid values into
sequences of ID tokens.

Perhaps replace the outer xsl:if with an xsl:for-each, iterating over
the each ID token in each link[@type='figure'] (keeping in mind that
there may be more than one link in a para, right?).

-Brandon :)


On Thu, Feb 24, 2011 at 5:14 AM, JS rawat <jrawat@xxxxxxxxxxxxxx> wrote:
> Figure 1 can appear multiple times but its corresponding caption should be
> pulled at first callout. Means First two paragraph contains Figure 1 but
> caption should associate after first paragraph. Right now I am using below:
>
> <xsl:template match="p">
>  <p><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:template>
>
> -----Original Message-----
> From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
> Sent: Thursday, February 24, 2011 2:35 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] pulling object at their correponsing callout
>
> On 24/02/2011 05:51, JS rawat wrote:
>> Hi Team,
>> Could anyone help me out to solve below below using xslt 2.0
>
> You'll have to explain your requirements more clearly. Why does figure 1
> appear three times in the input, and how do you decide which caption
belongs
> with which figure? (I'm assuming that your problem is something to do with
> matching figures and their captions, but I've no idea what rules you are
> applying.)
>
> Michael Kay
> Saxonica
>>
>> Input
>> <article>
>> <p>text text<link rid="f1" type="figure">Figure 1</link>  text
>> text</p>
>  <p>text text<link rid="f1" type="figure">Figure 1</link>
>> text text</p>
> <p>text text<link rid="f1 fl2" type="figure">Figure
>> 1-2</link>  text text</p> <p>text text<link rid="f1"
>> type="figure">Figure 1</link>  text text</p> <object id="f1"
>> position="floating" type="figure">figure caption1</object> <object
>> id="f2" position="floating" type="figure">figure caption2</object>
>> </article>
>>
>>
>> Output
>> <article>
>> <p>text text<link rid="f1" type="figure">Figure 1</link>  text
>> text</p> <object id="f1" position="floating" type="figure">figure
>> caption1</object>
>>
>> <p>text text<link rid="f1" type="figure">Figure 1</link>  text
>> text</p> <p>text text<link rid="f1 fl2" type="figure">Figure
>> 1-2</link>  text text</p> <object id="f2" position="floating"
>> type="figure">figure caption2</object>
>>
>>
>> <p>text text<link rid="f1" type="figure">Figure 1</link>  text
>> text</p> </article>
>>
>> Thanks in advance
>> ...JSR

Current Thread