[xsl] XSL stylesheet issue (newbie)

Subject: [xsl] XSL stylesheet issue (newbie)
From: "Frank Dissinger frank.dissinger@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 17 Oct 2024 20:16:00 -0000
Thank you to all of you for this great feedback! I'll let you know how I get
along on Monday.

Freundliche GrC<Ce | Best regards
Frank Dissinger
Documentation Manager
..........................................
CGS ORIS GmbH
frank.dissinger@xxxxxxxxxxxx | www.cgs-oris.com
Kettelerstrasse 24 | 63512 Hainburg | Germany
Phone +49 6182 9626-0 | Fax +49 6182 9626-99
Commercial register: Offenbach, HRB no. 21495
Managing directors: Bernd RC<ckert, Christoph Thommessen
b
-----------------------------------------------------------------------------
------------------------

-----UrsprC<ngliche Nachricht-----
Von: Frank Dissinger <frank.dissinger@xxxxxxxxxxxx>
Gesendet: Donnerstag, 17. Oktober 2024 19:21
An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Betreff: XSL stylesheet issue (newbie)

Hello everyone,

The stylesheet below is supposed to add a unique 'id' attribute named
'tocref001', 'tocref002' etc. to all <h2>, <h3> and <p class="rn_heading">
elements which are descendants of an element with an 'id' attribute named
'rn_release_notes'. The script runs without any errors, but does not add any
IDs.

I admit that I have little to no knowledge of XSLT. ChatGPT was my friend. But
I have created a small HTML file and an XSL stylesheet with slightly simpler
XPath expressions which works fine. But it does not work with a more complex
HTML file. I have attached such a file to this message. A colleague who is a
software developer tried to debug the stylesheet with Visual Studio, but
without success.

The purpose of this script, when finished, is to create a Table of Contents
for an HTML file. The current state of it is only to add hyperlink targets to
the relevant headings.

Any help is greatly appreciated.

-------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">

  <!-- Output settings for HTML5 -->
  <xsl:output method="html"
              encoding="UTF-8"
              indent="yes"/>

  <!-- Identity template to copy all elements and attributes -->
  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

<!-- Adding id=toc001 attributes to headings to create hyperlink targets for
the TOC --> <xsl:template match="*[@id='rn_release_notes']//h2 |
*[@id='rn_release_notes']//h3 |
*[@id='rn_release_notes']//p[@class='rn_heading']">

    <xsl:variable name="id">
       <xsl:number level="any" count="*[@id='rn_release_notes']//h2 |
*[@id='rn_release_notes']//h3 |
*[@id='rn_release_notes']//p[@class='rn_heading']" format="000"/>
    </xsl:variable>

   <xsl:copy>
        <xsl:attribute name="id">tocref<xsl:value-of
select="$id"/></xsl:attribute>
        <xsl:apply-templates select="@*[name() != 'id']"/>
        <xsl:apply-templates select="node()"/>
    </xsl:copy>

</xsl:template>

</xsl:stylesheet>

Current Thread