3 votes

XSL-FO - comment générer une table des matières ?

Je dispose de la structure documentaire suivante et je souhaite générer une table des matières qui s'intégrerait à ma transformation XSLT. J'ai essayé plusieurs choses mais aucune n'a fonctionné pour moi. Est-ce que quelqu'un pourrait m'aider avec ceci?

Avec la transformation suivante, j'obtiens cet AVERTISSEMENT et un numéro de page vide à la place.

AVERTISSEMENT : Page 2 : La référence d'identifiant non résolue "N65898" a été trouvée.

Structure du document

        Chapitre 1
        texte du chapitre 1

            Section1 1.1
            texte 1.1

                Section2 1.1.1
                texte 1.1.1

                Section2 1.1.2
                texte 1.1.2

                Section2 1.1.3
                texte 1.1.3

                Section2 1.1.4
                texte 1.1.4

            Section1 1.2

                Section2 1.2.1

                Section2 1.2.2

                    Section3 1.2.2.1

                   Section3 1.2.2.2

        Chapitre 2

            Section1 2.1

                Section2 2.1.1

                Section2 2.1.2

                   Section3 2.1.2.1

                    Section3 2.1.2.2

            Section1 2.2

                Section2 2.2.1

                Section2 2.2.2

                    Section3 2.2.2.1

                    Section3 2.2.2.2

        Chapitre 3

            Section1 3.1

                Section2 3.1.1

                Section2 3.1.2

                    Section3 3.1.2.1

                    Section3 3.1.2.2

            Section1 3.2

                Section2 3.2.1

                Section2 3.2.2

                    Section3 3.2.2.1

                    Section3 3.2.2.2

Transformation

    TABLE DES MATIÈRES

8voto

Daniel Haley Points 19098

Cela fonctionnera uniquement si vous produisez un ID lorsque vous produisez . Le @ref-id dans a besoin de quelque chose sur quoi pointer.

Voir ma réponse ici.


MODIFIER - Exemple d'ID généré

Voici un exemple de feuille de style. Il générera un PDF avec un TOC fonctionnel à partir de votre XML d'entrée. J'ai testé avec Saxon 6.5.5 et FOP.

      TABLE DES MATIÈRES

MODIFIER 2023-07-27 - J'ai remarqué une réponse supprimée qui était en fait une question de 2014...

C'est le meilleur exemple que j'ai trouvé sur l'inet pour créer une table des matières. Cependant, cela fonctionne pour moi, mais je n'arrive pas à comprendre comment générer les en-têtes sect1, sect2, etc. dans la table des matières avec les numéros de page. J'ai essayé de répéter le code fo:basic link pour la section, mais cela ne fonctionne pas. S'il vous plaît aidez. - Lori Boyters

Voici une feuille de style XSLT 1.0 mise à jour qui créera également des entrées de TOC pour sect1, sect2 et sect3.

            TABLE DES MATIÈRES

Voici un exemple de fiddle fonctionnel : http://xsltfiddle.liberty-development.net/bFD9uum

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X