xsl-list
[Top] [All Lists]

Re: [xsl] pulling object at their correponsing callout

2011-02-24 13:14:12
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(_at_)aptaracorp(_dot_)com> 
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(_at_)saxonica(_dot_)com]
Sent: Thursday, February 24, 2011 2:35 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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



--~------------------------------------------------------------------
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>
--~--




--~------------------------------------------------------------------
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>
--~--





--~------------------------------------------------------------------
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>
--~--



--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>