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 :

[XSLT] Passage d'une architecture plane à une architecture en profondeur


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Par défaut [XSLT] Passage d'une architecture plane à une architecture en profondeur
    Bonjour à tous

    Alors voilà j'ai un petit problème en xslt

    J'ai un fichier XHTML qui contient ceci par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h1>Titre</h1>
    <h2>Sous Titre</h2>
    <p>blabla</p>
    Je voudrais obtenir ceci en xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <section level="1" id="Titre">
        		<section level="2" id="Sous Titre">
        		      <paragraph>
        		            blabla
        	              </paragraph>
        	        </section>
    </section>
    Mais pour l'instant la seule chose que j'obtiens c'est ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <section level="1" id="Titre"></section>
    <section level="2" id="Sous Titre"></section>
    <paragraph>
        	blabla
    </paragraph>
    En fait je ne vois pas du tout comment imbriquer mes sections

    Est ce vraiment possible ?

    Pour info, un bous de mon code xsl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="h1">
        	<xsl:variable name="chap" select="translate(substring-after(a/@name,'chap_'),'_','.')"/>
        	<section level="1" id="{$chap}">
        		<title>
    	    		<xsl:apply-templates/>
    	    	</title>
        	</section>
        </xsl:template>
    Je comprends pourquoi j'obtiens ça, mais ne sais pas du tout résoudre mon problème :'(
    Merci à tous

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Tu pourrais peut-être essayer de t'inspirer d'un de ces deux codes : http://xml.developpez.com/sources/?p...bo#IV_position

    [plutôt le premier à priori ]
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre expérimenté Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Par défaut
    Merci beaucoup !
    Je ne savais pas que ça correspondait à ça !

    Merci pour avoir renommer le titre aussi

  4. #4
    Membre expérimenté Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Par défaut
    Heu c'est encore moi

    Enfin de compte j'y arrive vraiment pas

    J'ai essayé d'adapté le code donné dans le lien mais ça ne donne vraiment rien

    Je trouve ça vraiment étonnant qu'on trouve pas le net un code déja éxistant par rapport à des balises tel que h1, h2 ... pour imbriqué des sections, et pourtant j'ai cherché !

  5. #5
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    Citation Envoyé par Sebou77
    Je trouve ça vraiment étonnant qu'on trouve pas le net un code déja éxistant par rapport à des balises tel que h1, h2 ... pour imbriqué des sections, et pourtant j'ai cherché !
    Le lien que t'a donné Swöog correspond parfaitement à ce cas de figure.

    Il faut juste adapter un petit peu : remplace les éléments <section> et <texte> par tes <h1>, <h2>, etc. et <p>. Dans le code source, le niveau est contenu dans l'attribut niveau, tandis que dans ton cas le niveau est le nombre figurant après la lettre h dans <h1>, <h2>, etc. Il faut donc l'extraire à partir du noeud courant, avec une expression XPath du style :
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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