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 :

Ajouter un noeud à un fichier xml existant


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Points : 57
    Points
    57
    Par défaut Ajouter un noeud à un fichier xml existant
    Bonjour, bonjour,

    Je suis débutante en XML et j'ai un problème,
    J'ai un fichier XML avec lequel je dois remplir une base mais avant cela je voudrait rajouter des noeuds.

    Voila le fichier actuel :
    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
     
    <?xml version="1.0" encoding="Windows-1252" standalone="yes"?>
    <?xml-stylesheet type="text/xsl" href="__THEATRE_MAI_STRASBOURG.xsl" ?>
    <!-- Exported by MVS DIXIT Mac OS X Version 1.11 r6, all rights reserved, 2004-2009 -->
    <MVS_DIXIT EDITION="STRASBOURG" MOIS="MAI" RUBRIQUE="THEATRE" NOM_CONTENU="__THEATRE_MAI_STRASBOURG">
     
    <TEXT>
    	<TEXTE type="TXT" adjuststylesheets="no">
     
     
    		<TITRE style_sheet="TITRE1">TROIS PIÈCES EN UN ACTE </TITRE>
    		<AUTEUR style_sheet="AUTEURS-ACTEURS-COMPAGNIES">
    			Tirées du recueil "Six pièces en un acte" de Dino Buzzati
    			Comédiens du Rhin
    			Mise en scène : Christophe Lyonnet
    		</AUTEUR>
    		<DESCRIPTIF style_sheet="TEXTE">
    			* "Seule un soir" : la cartomancienne parle seule chez elle, ou à son chat, son lézard, ses fantasmes, puis à un visiteur inattendu
    			* "Les souffleurs" : une dispute amoureuse suivie en direct par deux intrus antinomiques qui vont devoir en découdre
    			* "L’augmentation" : un employé modèle reçoit une récompense qu’il ne mérite pas vraiment.
    		</DESCRIPTIF>
    		<RENS_PRATIQUES style_sheet="RENSEIGNEMENTS">
    			Réservations : reservations-buzzati@club-internet.fr - Répondeur : 03 88 32 20 60
    			CREPS, SALLE DU CUBE NOIR - STRASBOURG 
    			20 h 30 - Du 30 avril au 7 mai (relâche le 4, dimanche 3 à 17 h 30)
    		</RENS_PRATIQUES>
     
     
    		<TITRE style_sheet="TITRE1">MÉTÉO DES ÉBATS</TITRE>
    		<AUTEUR style_sheet="AUTEURS-ACTEURS-COMPAGNIES">
    			Compagnie BoulevArt Théâtre
    			Mise en scène : Daniel Chambet-Ithier
    		</AUTEUR>
    		<DESCRIPTIF style_sheet="TEXTE">
    			Entre chansons/passions, passions mortelles, grandes scènes du répertoire amoureux, le tout revisité au rythme hallucinant d'un cœur en émoi, les comédiens proposent aux spectateurs quelques nouvelles questions 					amoureuses.
    		</DESCRIPTIF>
    		<RENS_PRATIQUES style_sheet="RENSEIGNEMENTS">
    			LE CHEVAL BLANC - 25 Rue principale - SCHILTIGHEIM - Tél. 03 88 83 84 85
    			20 h 30 (dimanche à 17 h) - Jusqu'au 3 mai
    		</RENS_PRATIQUES>
     
    		</TEXTE>
    <!--
    -->
    </TEXT>
    <!--
    <LIST>
    </LIST>
    -->
    </MVS_DIXIT>

    et je voudrait rajouter des balises mères qui encadreraient plusieurs balises afin de bien definir un article

    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
     
     
     
    	<ARTICLE>
    		<TITRE style_sheet="TITRE1">TROIS PIÈCES EN UN ACTE </TITRE>
    		<AUTEUR style_sheet="AUTEURS-ACTEURS-COMPAGNIES">
    			Tirées du recueil "Six pièces en un acte" de Dino Buzzati
    			Comédiens du Rhin
    			Mise en scène : Christophe Lyonnet
    		</AUTEUR>
    		<DESCRIPTIF style_sheet="TEXTE">
    			* "Seule un soir" : la cartomancienne parle seule chez elle, ou à son chat, son lézard, ses fantasmes, puis à un visiteur inattendu
    			* "Les souffleurs" : une dispute amoureuse suivie en direct par deux intrus antinomiques qui vont devoir en découdre
    			* "L’augmentation" : un employé modèle reçoit une récompense qu’il ne mérite pas vraiment.
    		</DESCRIPTIF>
    		<RENS_PRATIQUES style_sheet="RENSEIGNEMENTS">
    			Réservations : reservations-buzzati@club-internet.fr - Répondeur : 03 88 32 20 60
    			CREPS, SALLE DU CUBE NOIR - STRASBOURG 
    			20 h 30 - Du 30 avril au 7 mai (relâche le 4, dimanche 3 à 17 h 30)
    		</RENS_PRATIQUES>
    	</ARTICLE>	
    	<ARTICLE>	
    		<TITRE style_sheet="TITRE1">MÉTÉO DES ÉBATS</TITRE>
    		<AUTEUR style_sheet="AUTEURS-ACTEURS-COMPAGNIES">
    			Compagnie BoulevArt Théâtre
    			Mise en scène : Daniel Chambet-Ithier
    		</AUTEUR>
    		<DESCRIPTIF style_sheet="TEXTE">
    			Entre chansons/passions, passions mortelles, grandes scènes du répertoire amoureux, le tout revisité au rythme hallucinant d'un cœur en émoi, les comédiens proposent aux spectateurs quelques nouvelles questions 					amoureuses.
    		</DESCRIPTIF>
    		<RENS_PRATIQUES style_sheet="RENSEIGNEMENTS">
    			LE CHEVAL BLANC - 25 Rue principale - SCHILTIGHEIM - Tél. 03 88 83 84 85
    			20 h 30 (dimanche à 17 h) - Jusqu'au 3 mai
    		</RENS_PRATIQUES>
    	</ARTICLE>
    J'ai essayé de tenter un truc mais ca ne marche pô
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $dom = new DomDocument();
    $dom->load('test.xml');
     
    $titres=$dom->getElementsByTagName('TITRE');
     
    $newNode=$dom->createElement("ARTICLE");
    foreach ($titres as $titre) {
       $dom->insertBefore($newNode,$titre);
       // echo $titre->nodeValue.'<br>';
    }
    Donc je voudrais savoir si c'est possible et si oui comment je pourrait faire avec domdocument et sinon si ya pas une alternative .


    merci d'avance de votre aide

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Les choses sont un peu plus compliquées que cela. En effet il ne s'agit pas d'insérer un simple noeud comme tu essaies de la faire avec ton insertBefore (dont l'utilisation est au passage ici erronée) , mais plutôt de créer un noeud qui va être le parent de noeuds déjà existants. Tu peux le faire mais alors il va te falloir:
    1. créer un noeud ARTICLE
    2. l'insérer avant le noeud titre (par exemple insertBefore)
    3. déplacer les noeuds qui suivent (TITRE, AUTEUR, DESCRIPTIF, RENS_PRATIQUES) pour les mettre en qualité d'enfant du noeud ARTICLE créé. (par exemple removeChild, insertBefore)


    Loin d'être inabordable, mais une transformation XSLT intermédiaire peut aussi faire l'affaire, avec la copie peut-être plus aisée des noeuds.

    A toi de voir,

    ERE
    Quand une tête pense seule, elle devient folle.

Discussions similaires

  1. [XML] Ajouter un node et ses enfants dans un fichier xml existant
    Par zoreol dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 23/11/2010, 12h50
  2. Réponses: 5
    Dernier message: 23/04/2010, 21h26
  3. [DOM] Ajouter un noeud dans un XML existant
    Par splifferwolf dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 11/02/2008, 16h01
  4. [DOM] Ajouter des nouveaux élements depuis un nouveau fichier dans un fichier XML existant
    Par nettynet dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 17/10/2007, 08h07
  5. [DOM] Ajouter des noeuds à un fichier XML
    Par Louis-Guillaume Morand dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 07/04/2007, 14h55

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