|
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 |