IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

table des matières et gestion d'onglets [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Homme Profil pro
    ARCHIVISTE
    Inscrit en
    Novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : ARCHIVISTE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut table des matières et gestion d'onglets
    Bonjour à tous,

    je vous remercie d'avance pour toute l'aide que vous pourrez m'apporter.

    Voilà mon problème, il y a cinq ans j'ai crée une feuille de style XSL capable d'afficher dans un navigateur (chrome, IE et firefox) un instrument de recherche XML encodé selon la norme DTD EAD.

    Voici comment fonctionne le fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ead SYSTEM "file:/D:/5%20CONTRATS/EAD%202014/ead.dtd">
    <ead>
        <eadheader> informations d'entête
            <eadid></eadid>
     
        </eadheader>
        <archdesc level="">information de niveau haut
            <did>
                <unitid></unitid>
                <unittitle>titre de niveau 1</unittitle>
                <unitdate></unitdate>
            </did>
            <dsc>information de niveau bas
     
                <c>
                    <did>
                        <unitid></unitid>
                        <unittitle>titre de niveau 2</unittitle>
                        <unitdate></unitdate>
                    </did>
                    <controlaccess></controlaccess>
                    <c>
                        <did>
                            <unitid></unitid>
                            <unittitle>titre de niveau 3</unittitle>
                            <unitdate></unitdate>
                        </did>
                        <controlaccess></controlaccess>
                        <c>
                            <did>
                                <unitid></unitid>
                                <unittitle>titre de niveau 4</unittitle>
                                <unitdate></unitdate>
                            </did>
                            <controlaccess></controlaccess>
     
                            etc...
                            <c>
                                <did>
                                    <unitid></unitid>
                                    <unittitle>analyse article</unittitle>
                                    <unitdate></unitdate>
                                </did>
                            </c>
                        </c>
                    </c>
                </c>
            </dsc>
        </archdesc>
    </ead>
    De ce fichier xml, la feuille de style exportait un fichier xhtml oragnisé en onglets grâce au javascript :
    - un onglet pour l'entête (eadheader)
    - un onglet pour la description de niveau haut (archdesc)
    - un onglet pour un sommaire "figé" reprenant les titres de niveau 1 à l'infini sans toutefois le dernier niveau de description analyse article
    - un onglet pour la description de niveau bas
    - un onglet facultatif affichant tous les controlaccess avec les cotes (unitid)

    De plus au niveau bas, j'avais une table des matières "dynamique" qui me permettait de naviguer dans mes descriptions de niveau bas.

    Mon problème est que ce fichier était déjà lourd à l'affichage. De plus mainetnant après 4 ans ces fonctionnalités générées grâce au javascript ne semblent plus fonctionner, du coup je me dis qu'il est temps de rvoir le fonctionnement de cette feuille de style;

    Je veux donc pouvoir de nouveau générer à partir d'un fichier XMl avoir plusieurs onglets et également retrouvé une table des matières dans mon onglet du niveau bas qui me permette de naviguer au niveau bas. Dans la mseure du possible, j'aimerai me passer le plus possible du javascript. (bon je sais , je crois un peu au père Noël mais bon Noêl approche alors je me dis que...lol)

    En fait plus sérieusement, je pensais fonctionner avec une feuille de style qui à partir d'un fichier XML me générerait plusieurs pages HTML reliées par une navigation en onglet ce qui m'viterait le javascript et donc allégerait l'affichage. Pour la table des matières je n'ai pas trop d'idée.

    Donc si vous avez des idées je suis preneur. De toute façon j'ai besoin de votre aide pour oragniser tout ça.

    Je vous joins ma feuille de style XSl qui en fait fait appel à d'autres feuille s de style xsl pour extraire les informations du xml et également à des feuilles css pour réorganiser l'affichage dans la page html.
    .

    Je ne peux par contre pas vous joindre de fichier XML car ces données ne sont pas publiques, je peux par contre les transmettre par mail (mais à votre discrétion)

    voilà je vous remercie

    Bonne soirée et à tres vite j'espère
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    J'ai pas trop compris comment tu faisais pour que la feuille de style affiche tes pages à onglet dans le navigateur.
    Normalement il faudrait que le XML contienne un truc du genre <?xml-stylesheet href="url-de-la-xslt" ?> mais j'en vois pas, alors comment ?

    En tout cas pour avoir plusieurs pages en partant d'un seul XML, on peut pas utiliser cette technique-là.
    Tu pourrais par exemple générer les pages sur ton ordinateur, en utilisant un moteur XSLT, le XML, et la XSLT de chaque page. Puis ensuite mettre ces pages sur le site.
    Ou alors tu pourrais utiliser un langage côté serveur genre PHP, qui fait la transformation à chaque fois que tu demandes une page.
    Mais bon, déjà faudrait savoir où on est et que tu répondes à la question au-dessus.

    Citation Envoyé par PERICLESLESTRATEGE Voir le message
    Je ne peux par contre pas vous joindre de fichier XML car ces données ne sont pas publiques, je peux par contre les transmettre par mail (mais à votre discrétion)
    Pas de ça ici, conformément aux règles que tu as acceptées. Tu n'envoies rien de technique en privé, toujours sur les discussions publiques.
    Il suffit de remplacer les données privées par des fausses données publiques, ce n'était pas difficile d'y penser, n'est-ce pas ?

    Mais bon, de toute façon, il est peu probable qu'on en ait besoin pour l'instant. Tu as assez bien illustré la situation dans laquelle tu es.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Homme Profil pro
    ARCHIVISTE
    Inscrit en
    Novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : ARCHIVISTE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    je te remercie de ta réponse. En fait pour récupérer les onglets, j'ai divivsé ma page html final en div avec des id bien distincts (idtabs1, idtabs 2, etc)
    Du coup le javascript récupère ces id par la commande getelementbyid()
    Ensuite il affiche par défaut l'idtabs que je souhaite afficher par défaut et cache les autres avec une classe css;

    Je joins pour que ce soit plus clair, la CSS, les feuilles de style XSL complémentaires et également le JS concerné que j'avais récupérer sur le net.

    Pour ta solution, je ne connais pas le PHP, n'étant pas programmeur. mais je suis ouvert à toute proposition qui me permettrait de m'affranchir du JS pour alleger ma page.

    pour générer les pages sur mon ordinateur, en utilisant un moteur XSLT, le XML, et la XSLT de chaque page, je ne vois pas trop comment faire donc si tu peux m'éclairer la dessus. Puis ensuite mettre ces pages sur le site.
    Ou alors tu pourrais utiliser un langage côté serveur genre PHP, qui fait la transformation à chaque fois que tu demandes une page.

    Si tu as besoin d'autres infos, redis moi
    Fichiers attachés Fichiers attachés

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Les fichiers XSL. Comment sont-ils appelés ? Qu'est-ce qui dit "je veux utiliser ce fichier XSL" ?
    Il n'y a aucune trace de ça dans ce que tu nous montres.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Homme Profil pro
    ARCHIVISTE
    Inscrit en
    Novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : ARCHIVISTE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut schéma des XSL
    Citation Envoyé par thelvin Voir le message
    Les fichiers XSL. Comment sont-ils appelés ? Qu'est-ce qui dit "je veux utiliser ce fichier XSL" ?
    Il n'y a aucune trace de ça dans ce que tu nous montres.
    La feuille de style principale epsilon appelle deux feuilles de style qui respectivement en appellent d'autres. Voici le schéma

    Epsilon.xsl
    <xsl:include href="STYLE/haut.xsl"/>

    <xsl:include href="STYLE/archdesc.xsl"/>
    <xsl:import href="niveau.xsl"/>
    <xsl:include href="lientitre.xsl"/>
    <xsl:include href="fonctionnalite.xsl"/>
    <xsl:include href="ficheisadgbas.xsl"/>
    <xsl:include href="niveau.xsl"/>
    <xsl:include href="description.xsl"/>

    Ce fonctionnement me permet de ne pas répéter deux fois le même code.

    Par contre seule la feuille princiaple epsilon appelle les fichiers js et les autres feuilles de style CSS.

    Je n'ai pas mis tous les fichiers car je pense que les autres ficheirs ne sont pas tres utiles pour mon probleme sauf si vous en avez besoin...

  6. #6
    Futur Membre du Club
    Homme Profil pro
    ARCHIVISTE
    Inscrit en
    Novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : ARCHIVISTE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Je vous remets l'arborescence avec des numéros car elle n'est pas passée dans mon message précedent :

    Epsilon.xsl
    1)<xsl:include href="STYLE/haut.xsl"/>

    2)<xsl:include href="STYLE/archdesc.xsl"/>
    2.1)<xsl:import href="niveau.xsl"/>
    2.2)<xsl:include href="lientitre.xsl"/>
    2.3)<xsl:include href="fonctionnalite.xsl"/>
    2.3.1)<xsl:include href="ficheisadgbas.xsl"/>
    2.3.1.1)<xsl:include href="niveau.xsl"/>
    2.3.2)<xsl:include href="description.xsl"/>

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Mais enfin c'est pourtant pas compliqué comme question.
    La plupart des feuilles XSLT sont appelées par la feuille epsilon.xsl, bien, super.
    Et elle, comment est-elle appelée ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Futur Membre du Club
    Homme Profil pro
    ARCHIVISTE
    Inscrit en
    Novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : ARCHIVISTE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Mais enfin c'est pourtant pas compliqué comme question.
    La plupart des feuilles XSLT sont appelées par la feuille epsilon.xsl, bien, super.
    Et elle, comment est-elle appelée ?

    Désolé je n'avais pas compris le sens de ta question. En fait la feuille est appellée "manuellement" si je suis dire car en fait
    dans mon fichier XML je renseigne cette ligne : <?xml-stylesheet type="text/xsl" href="epsilon.xsl"?>
    Si un jour je voulais l'afficher sur le web j'utiliserais le scénario de transformation en XHTML de mon éditeur XML Oxygene. Donc en gros, je ne sais pas si ça répond à ta question, je n'ai pas de moteur particulier. La seule chose dont j'ai besoin actuellement est d'avoir un fichier XML, une feuille de style et qu'en associant la feuille de style au fichier XML j'ai un affichage correct du fichier XML. Peut être qu'à terme j'aurai besoin de pousser un peu plus.

    En fait je me sers de ma feuille de style non comme affichage sur un site web mais comme outil de correction des fichiers XML en interne dans le service, voir à en faire des impressions (mais ça n'est pas le problème qui m'amène ici)

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    D'accord. Eh bien, pour créer plusieurs pages à partir d'un seul XML, cette méthode n'est pas possible.
    Une solution serait en effet d'utiliser oXygen ou un autre moteur XSLT du même genre.

    En vérité, je comprends l'intérêt d'utiliser XSLT comme un outil rapide pour obtenir ce que tu veux (une vue du XML comme outil de correction.) Mais lorsque tu atteints des limites techniques (comme tu le dis, trop lourd,) il devient temps de passer à une solution plus adaptée, moins bricolée. Comme créer ton outil maison qui affiche le XML rapidement, avec un langage de programmation et pas XSLT.
    Fondamentalement, c'est la même chose que créer plusieurs pages pour plusieurs onglets, sauf que la création de ces pages, ben, c'est compliqué, pas automatique, il faut les créer toutes d'abord et les afficher dans un navigateur ensuite, c'est laborieux. D'où l'avantage de faire rapidement un outil maison qui fait tout directement. Bon, il faut savoir programmer ou embaucher quelqu'un qui sait le faire, c'est sûr.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Futur Membre du Club
    Homme Profil pro
    ARCHIVISTE
    Inscrit en
    Novembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : ARCHIVISTE
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Merci de ta réponse
    Bonjour

    Merci de ta réponse. Et si je voulais apprendre à développer mon outil maison, tu me conseillerais d'aller plutôt vers quoi ? le PHP ? J'avoue que j'aime bien apprendre de nouvelles choses et de me lancer de nouveaux défis donc s'il faut que je me forme, ce n'est pas inenvisageable pour moi en tout cas.

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    PHP c'est plutôt pour les sites webs. Pour quelqu'un qui ne connaît pas de langage je regarderais du côté de Python ou Ruby, je pense. Ce sont des langages simples et agréables, et leurs bibliothèques XML et graphiques ne sont pas moins bonnes que d'autres.

    ... Mais en apprenant depuis le début, ça risque d'être long et assez désespérant, si on vise la création d'un outil maison complet.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2013] Gestion d'une table des matières avec plusieurs sections
    Par CrasherSEP dans le forum Word
    Réponses: 1
    Dernier message: 01/06/2015, 23h15
  2. Modifier la profondeur de la table des matières
    Par Bouboubou dans le forum Mise en forme
    Réponses: 6
    Dernier message: 16/12/2005, 13h19
  3. [CR11] une table des matières, avec n° de page : possible ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 08/09/2005, 11h49
  4. [OpenOffice][Texte] Table des matières
    Par fuhraih dans le forum OpenOffice & LibreOffice
    Réponses: 6
    Dernier message: 12/08/2005, 11h40
  5. créer une table des matières avec fop
    Par gedeon555 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 05/07/2005, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo