|
Subject: Re: [xsl] Add id to next element From: "Raghavendra Nyshadham nyraghu27132@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 20 May 2022 03:52:01 -0000 |
On Fri, May 20, 2022 at 9:12 AM Kevin Brown
kevin.brown@xxxxxxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
wrote:
> Unless you need other things in the match of section (and not a straight copy).
> And assuming you are not processing data that would have:
>
> <target refid="foo"/>
> <section>....</section>
> <target refid="bar"/>
> <section>....</section>
>
> Then I am not sure here:
>
> <xsl:attribute name="id" select="preceding-sibling::target/@refid"/>
Right now I am using this:
<xsl:template match="section" as="element(section)">
<section>
<xsl:variable name="previous" select="preceding-sibling::*[1]"
as="element()"/>
<xsl:if test="$previous/local-name() = 'target'">
<xsl:attribute name="id">
<xsl:value-of select="$previous/@refid"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates/>
</section>
</xsl:template>
<xsl:template match="target"/>
It is an adaptation of some of the solutions from the other replies,
and works for the actual XML document I am processing. The id for any
<section> is provided by a <target> that immediately precedes it. Not
all <section>s have an immediately preceding <target>.
Regards,
Raghavendra.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Add id to next element, Kevin Brown kevin.br | Thread | Re: [xsl] Add id to next element, Kevin Brown kevin.br |
| Re: [xsl] Add id to next element, Kevin Brown kevin.br | Date | Re: the "~" operator (was Re: [xsl], Chris Papademetrious |
| Month |