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

Langage PHP Discussion :

Ajout et supprersion de noeud ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Par défaut Ajout et supprersion de noeud ?
    bonjour,

    je tente d'ajouter un element dans un fichier xml mais ne n'y arrive pas, l'élément ajouter est ajouter au fichier certes mais pas dans le noeud souhaiter

    voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <vol>
    		<id>3</id>
    		<agent>lemmouchi</agent>
    		<date>28/08/2011</date>
    		<numvolref>ezy1395</numvolref>
    		<numvolarv>ezy1395</numvolarv>
    		<from>nap</from>
    		<sta>0820</sta>
    		<numvoldep>none</numvoldep>
    		<to>none</to>
    		<std>none</std>
    </vol>
    je veux ajouter un noeud "parking" avec la valeur "A5" si id =3 et donc avoir le résultat suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <vol>
    		<id>3</id>
    		<agent>lemmouchi</agent>
    		<date>28/08/2011</date>
    		<numvolref>ezy1395</numvolref>
    		<numvolarv>ezy1395</numvolarv>
    		<from>nap</from>
    		<sta>0820</sta>
    		<numvoldep>none</numvoldep>
    		<to>none</to>
    		<std>none</std>
                    <parking>A5</parking>
    </vol>
    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
    $doc = new domdocument();
    $doc->load('prm/listevols.xml');
    $doc->formatOutput = true;
    $messagenode = $doc->getElementsByTagName('listevol')->item(0);
    $i1=($messagenode->childNodes->length-1) ;
    $j=0;
    $i1=$i1/2;
    while ($j<$i1){
        $messagesousnode=$messagenode->getElementsByTagName('id')->item($j);
    if ($_SESSION['iditem']==$messagesousnode->childNodes->item(0)->nodeValue){ 					
    tous les codes essayer plante ou donne un résulta ko
     
    $doc->save('prm/listevols.xml');	
    break;
    }
    $j++;
    }
    y a bien la gestion via xpath (que je ne maitrise pas encore) mais si vous avez des liens je suis aussi preneur.
    merci de vos conseils
    cordialement

  2. #2
    Expert confirmé

    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
    Par défaut
    fait une requête xpath pour sélectionné ton nœud ça sera plus simple

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Par défaut
    merci de votre réponse mais auriez vous un lien ou un exemple explicite

    car en faite dans mon exemple je réussi bien à trouver le neoud mais je ne sais pas comment ajouté,

    j'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $anotherNode = $messagesousnode->createElement('img');
    $messagesousnode->appendChild($anotherNode);
    et cela ne marche pas
    cordialement

  4. #4
    Expert confirmé

    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

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Par défaut
    merci bcp j'ai enfin reussi, cependant

    avec l'élément ajouté il n 'y a pas de d'indentation et de passage à la ligne

    j'obtient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <vol>
    		<id>3</id>
    		<agent>lemmouchi</agent>
    		<date>28/08/2011</date>
    		<numvolref>ezy1395</numvolref>
    		<numvolarv>ezy1395</numvolarv>
    		<from>nap</from>
    		<sta>0820</sta>
    		<numvoldep>none</numvoldep>
    		<to>none</to>
    		<std>none</std>
    <parking>A5</parking></vol>
    pas très grave mais c'est pour la lecture

    avez vous une idée

    cordialement

  6. #6
    Membre expérimenté

    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
    Par défaut
    Mettre $doc->preserveWhiteSpace à FALSE avant le chargement du document (load).

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/12/2012, 21h18
  2. ajout d'evenement à un noeud créé
    Par bilou_2007 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 09/07/2010, 21h39
  3. Ajouter un Panel aux noeuds d'un arbre (JTree)
    Par rolls dans le forum Composants
    Réponses: 13
    Dernier message: 11/12/2009, 18h43
  4. [Ajout noeud xml] comment ça marche?
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 37
    Dernier message: 19/07/2007, 23h46
  5. TreeView -> ajouter un child à un noeud donné
    Par fake dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/03/2003, 18h14

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