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 |