|
Subject: Re: [xsl] crossreferencing any element From: James Cummings <James.Cummings@xxxxxxxxxxxxxx> Date: Mon, 24 Nov 2003 13:33:37 +0000 (GMT) |
On Mon, 24 Nov 2003, David Carlisle wrote:
> 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.
Ah! Now that makes sense. Yes, the document has a DTD and @id is type
ID and corresp is type IDREFS.
> 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>
Ok, that works when I know what the element is called. When I
don't know what it is called, I'm assuming that I should then do
something like:
<xsl:template match="node()">
<xsl:copy>
<xsl:copy-of select="@id"/>
<xsl:apply-templates select="id(@corresp)" mode="link"/>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
-James
---
Dr James Cummings, Oxford Text Archive, James.Cummings@xxxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] XSLT to XSLT, Jim Fuller | Thread | Re: [xsl] crossreferencing any elem, David Carlisle |
| [xsl] SAXON and heavy xml doc, SHEIKH Sajjad | Date | Re: [xsl] XSLT to XSLT, David Carlisle |
| Month |