Subject: Re: [xsl] Add id to next element From: "Graydon graydon@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 19 May 2022 18:47:49 -0000 |
On Thu, May 19, 2022 at 05:53:58PM -0000, Eliot Kimber eliot.kimber@xxxxxxxxxxxxxx scripsit: > The typical way to do it is to have the processing of the section element get > the value from the preceding target element: > > <xsl:template match="section"> > <xsl:variable name="id" as="xs:string?" > select="preceding-sibling::target[1]/@refid" > /> > <xsl:copy> > <xsl:attribute name="id" > select="if ($id) then $id else generate-id(.)" > /> > <xsl:apply-templates mode="#current"/> > </xsl:copy> > </xsl:template> What's wrong with <xsl:template match="section"> <xsl:copy> <xsl:apply-templates select="@*" mode="#current" /> <xsl:attribute name="id" select="(preceding-sibling::*[1][self::target]/@refid,generate-id(.)) => head()" /> <xsl:apply-templates mode="#current" /> </xsl:copy> </xsl:template> I am assuming XSLT 3, here, but that should be a fairly safe assumption these days. -- Graydon Saunders | graydonish@xxxxxxxxx ^fs oferiode, pisses swa mfg. -- Deor ("That passed, so may this.")
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Add id to next element, Eliot Kimber eliot.k | Thread | Re: [xsl] Add id to next element, Eliot Kimber eliot.k |
Re: [xsl] Add id to next element, Eliot Kimber eliot.k | Date | Re: [xsl] Add id to next element, Eliot Kimber eliot.k |
Month |