|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: crossreferencing any element
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








