[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Add id to next element
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.")
|
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
|