Re: [xsl] crossreferencing any element

Subject: Re: [xsl] crossreferencing any element
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 24 Nov 2003 12:18:15 GMT
> I think xslt2 tokenize()
> is an easy way to get at the idrefs

If your id attributes are  of type ID then you don't need
to explictly tokenize as the id() function is designed to work with
these space separated strings.

> But I get warnings of ambiguous
> matches each time I try to match an element (for example para) and
> also have a general match for it to create the cross referencing
> links.

that's what modes are for, when you want to generate the links use
apply-templates mode="link"
and have mode="link" on the link making templates.


In other words, assuming you have id or type ID

<xsl:template match="para">
  <p>
  <xsl:copy-of select="@id"/>
  <xsl:apply-templates select="id(@corresp)" mode="link"/>
  <xsl:apply-templates/>
  </p>
</xsl:template>

<xsl:template match="para" mode="link">
 <a href="#{@id}">[xref to <xsl:value-of select="@id"/>]</a>
</xsl:template>

David


________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread