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 :

Manipulation de données xml - doublons lors de la création de nodes


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Points : 27
    Points
    27
    Par défaut Manipulation de données xml - doublons lors de la création de nodes
    Bonjour à vous tous,

    Je me tourne vers vous car j'ai un soucis de nœuds qui sont créés en double.

    Le fichier xml avant utilisation du script ressemble à ça :
    <?xml version="1.0" encoding="utf-8"?>
    <users></users>
    Le script :
    $variable = $_POST['variable'];

    $dom = new DOMDocument();
    $dom->formatOutput = false;

    $dom->load('score-data.xml', LIBXML_NOBLANKS);

    $root = $dom->documentElement;
    $newresult = $root->appendChild( $dom->createElement('user') );

    $newresult->appendChild( $dom->createElement('score', $variable) );

    echo ''. $dom->saveXML() .'';
    $dom->save('score-data.xml') or die('XML Manipulate Error');
    En admettant que $variable = 14, une fois le script appelé je me retrouve avec le xml ci-dessous (en gras et orange j'ai fais ressortir les nœuds qui sont doublés):
    <?xml version="1.0" encoding="utf-8"?>
    <users><user><score>14</score></user><user><score></score></user></users>
    Quelqu'un aurait une idée du pourquoi du comment ?
    En vous remerciant par avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 232
    Points : 15 525
    Points
    15 525
    Par défaut
    essayez avec cela :

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    C'est laborieux mais j'ai trouvé une "solution" !
    Si je modifie cette ligne :
    $newresult->appendChild( $dom->createElement('score', $variable));
    en :
    $newresult->appendChild( $dom->createElement('score', ' -- '+$variable+' -- '));
    Les noeuds sont encore doublés mais cette fois avec 0 pour valeur.
    Ce qui me permet de faire des calculs sur les différentes variables par la suite en javascript (logiciel auteur oblige) en ne comptant pas les 0.

Discussions similaires

  1. POWER AMC 15 :Type XML disponible lors de la création d'1 MCD ?
    Par zinzineti dans le forum Administration
    Réponses: 8
    Dernier message: 22/11/2010, 10h43
  2. [JDOM] Manipuler des données XML avec Java et JDOM
    Par Premium dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 27/02/2009, 11h59
  3. Manipulation de données XML en tableaux
    Par zitoune92 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 03/07/2008, 17h24
  4. Réponses: 2
    Dernier message: 17/01/2007, 21h01
  5. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40

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