[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Question about cross references
Subject: Re: [xsl] Question about cross references From: "Tech Savvy" <tecsavvy@xxxxxxxxx> Date: Wed, 26 Apr 2006 14:34:05 -0500 |
Hello Jay: Thank you for your quick response. I have to implement this on both XSLT and XSLT Fo. I added this code to get the ID attribute for all the lists - <xsl:if test="@id"> <xsl:copy-of select="@id"/> </xsl:if> I matched xref using the code: <xsl:template match="xref"> <xsl:apply-templates select="@xrefid"/> </xsl:template> My problem is, how do I make this xrefid get to match the id value on the list and produce the number against it? Like this: > 1. Some text > 2. Some other text as in list 1A. On 4/26/06, Jay Bryant <jay@xxxxxxxxxxxx> wrote: > That's very possible (and a common task for those of us, including me, who > use XSLT to mangle documents). > > To handle it, you need to write a template to handle xref nodes. Something > like this: > > <xsl:template match="xref"> > <fo:basic-link internal-destination="{@xrefid}"><xsl:value-of > select="."/></fo:basic-link> > </xsl:template> > > You also need to create matching ids (the actual destinations) within the > FO, so you need to do that wherever you have an id attribute in the source. > Something like this: > > <xsl:template match="list1"> > <fo:block> > <xsl:if test="@id"> > <xsl:copy-of select="@id"/> > </xsl:if> > <xsl:value-of select="."/> > </fo:block> > </xsl:template> > > Of course, you'll probably want to use the proper list elements for your > list. I just stuck it in a block for simplicity's sake. > > Just remember that you need both a link and a corresponding id for the link. > > Also, if you can have id attributes in other than list1 nodes (seems > likely), you'll want to either handle it in each template or write a > separate template just to handle id attributes. > > If you have more trouble, post back to the list. > > HTH > > Jay Bryant > Bryant Communication Services > > ----- Original Message ----- > From: "Tech Savvy" <tecsavvy@xxxxxxxxx> > To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > Sent: Wednesday, April 26, 2006 1:39 PM > Subject: [xsl] Question about cross references > > > Hello: > > I am trying to achieve a corss ref in xslt and xsl:fo. > > Here is wht the XML looks like: > < > > list1 id="l1"> > <text> > > <para>Some text</para> > > </text> > > </list1> > > <list1 id="l2"> > > > <text> > > <para>Some other text as in list <xref xrefid ="l1"/>A.</para> > > </text> > > </list1> > > The desired result is: > > 1. Some text > 2. Some other text as in list 1A. > > But the current result is: > 1. Some text > 2. Some other text as in list l1A. > > > I want to get the reference from the xrefid and put it on the text. > The lists are formatted on the XSLT as eithr numbers(1,2) or (A,B) > etc. > > Is there nay way this can be achieved thru XSLT. > > Thanks in advance for your help.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Question about cross refe, Jay Bryant | Thread | Re: [xsl] Question about cross refe, Jay Bryant |
RE: [xsl] Unwanted xmlns attribute , Michael Kay | Date | Re: [xsl] Unwanted xmlns attribute , Karine Delvare |
Month |