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

Bibliothèques et frameworks PHP Discussion :

[DOM] Copier le contenu des fichiers XML d'un meme rep dans un seul fichier XML !


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Points : 21
    Points
    21
    Par défaut [DOM] Copier le contenu des fichiers XML d'un meme rep dans un seul fichier XML !
    Bonjour !

    Je pense que le titre décrit mon objectif clairement
    => le problème que mon code ne marche pas (pas d'erreur signalés)

    voici le code PHP :
    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
     
    <?php
     
    	$old = new DOMDocument();
            $old->load('All_Msgs.xml');
    	$old_root = $old->getElementsByTagName( "MSGS" );
     
    	$new = new DOMDocument();
    	$new->formatOutput = true;
           $new->appendChild( $old_root );
     
    	$doc = new DOMDocument();
     
    	$rep = opendir('.') or die("Erreur le repertoire existe pas");
     
        while($fichier = @readdir($rep))
        {
            if ($fichier == "." || $fichier == ".." || $fichier == "All_Msgs.xml" ) continue;
     
            if(is_file('./'.$fichier))
            {
    			if (preg_match('/.xml/',$fichier))
    			{
    				$new_root = $new->getElementsByTagName( "MSGS" );
    				$doc->load($fichier);
    				$NewMsg = $doc->getElementsByTagName( "MSG" );
    				$new_root->appendChild( $NewMsg );
    				$new->save('All_Msgs.xml');
    				echo $new->saveXML();
    			}
    		}
    	}
        closedir($rep);
    ?>
    et voici le code de All_Msgs.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?xml version="1.0"?>
    <MSGS>
    </MSGs>
    et pour les autres fichiers xml qui vont être inclus dans All_Msgs.xml
    voici ler format :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0"?>
    <MSG>
            <MsgName>blabla</NAME>
            <TAG>
                   <Name>toto</Name>
                   <Value>titi</Value>
            </TAG>
            <TAG>
                   <Name>amo</Name>
                   <Value>said</Value>
            </TAG>
    </MSG>
    Aidez-moi SVP !!

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    utilise plutot un glob pour trouver tes fichier ca sera plus simple

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Il faut importer le noeud (importNode) dans le nouveau document avant de chercher à l'y placer. Cf un sujet similaire.

    PS : inutile de passer par getElementsByTagName pour récupérer la racine (propriété documentElement de l'objet DomDocument) et, vous ne devez pas avoir les erreurs, parce que cette méthode renvoie un objet DOMNodeList et non DOMNode (= erreurs fatales + l'exception DOM_WRONG_DOCUMENT_ERR, je suppose).

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    glob ? c.a.d ?
    bon mon problème c pas de trouver les fichier..
    mais c'est que le traitement de "COPIER COLLER" d'un xml à un autre..

    voici le code simplifier :
    $old = new DOMDocument();
    $old->load('All_Msgs.xml');
    $old_root = $old->getElementsByTagName( "MSGS" );

    $new = new DOMDocument();
    $new->formatOutput = true;
    $new->appendChild( $old_root );

    $doc = new DOMDocument();

    $new_root = $new->getElementsByTagName("MSGS");
    $doc->load("msg.xml");
    $NewMsg = $doc->getElementsByTagName( "MSG" );
    $new_root->appendChild( $NewMsg );
    $new->save('All_Msgs.xml');
    echo $new->saveXML();

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    merci julp !

    j'ai trouvé la solution en se basant sur la documentation de importNode

    http://php.net/manual/fr/domdocument.importnode.php

    @+

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    merci également à toi stealth35 pour l'info
    see you later !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/05/2011, 16h48
  2. Modification du contenue des fichier XML
    Par robinson50 dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 02/06/2009, 22h29
  3. [DOM] DOM - copier le contenu d'un div dans un autre div
    Par Mike_69 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/03/2007, 17h02
  4. Stocker le contenu des fichier volumineux avec CLOB
    Par wided_instm dans le forum SQL
    Réponses: 18
    Dernier message: 08/02/2007, 10h58
  5. Extraire le contenu des balises XML
    Par calimero2611 dans le forum Modules
    Réponses: 7
    Dernier message: 12/06/2006, 15h09

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