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 :

[SimpleXML] Problème avec fonction children()


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur bioinformaticien
    Inscrit en
    Avril 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur bioinformaticien
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 139
    Points : 49
    Points
    49
    Par défaut [SimpleXML] Problème avec fonction children()
    Bonjour.

    J'essaie désespérément de parser un fichier XML en PHP.
    Je n'arrive pas à utiliser la fonction children().
    Mes noms de tags sont dynamiques.
    Exemple de structure XML:

    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
    <DATA>
    	<myName_1>
    		<champ_1>
    			<field>test1</field>
    			<country>test2</country>
    		</champ_1>
    	</myName_1>
    	<myName_2>
    		<champ_2>
    			<field>test3</field>
    			<country>test4</country>
    		</champ_2>
    		<champ_3>
    			<field>test5</field>
    			<country>test6</country>
    		</champ_3>
    	</myName_2>
    </DATA>
    Je charge mon fichier XML comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $xmldoc = new DomDocument( '1.0' );
    $xmldoc->preserveWhiteSpace = false;
    $xmldoc->formatOutput = true;
    $xml = file_get_contents("myFile.xml");
    $xmldoc->loadXML($xml,LIBXML_NOBLANKS);
    $root = $xmldoc->getElementsByTagName('DATA')->item(0);
    Si je regarde le contenu de $root avec var_dump(), je constate que ma variable contient bien ma structure:

    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
    object(DOMElement)#1009 (17) {
      ["tagName"]=>
      string(4) "DATA"
      ["schemaTypeInfo"]=>
      NULL
      ["nodeName"]=>
      string(4) "DATA"
      ["nodeValue"]=>
      string(30)=> "test1test2test3test4test5test6"
      ["nodeType"]=>
      int(1)
      ["parentNode"]=>
      string(22) "(object value omitted)"
      ["childNodes"]=>
      string(22) "(object value omitted)"
      ["firstChild"]=>
      string(22) "(object value omitted)"
      ["lastChild"]=>
      string(22) "(object value omitted)"
      ["previousSibling"]=>
      NULL
      ["attributes"]=>
      string(22) "(object value omitted)"
      ["ownerDocument"]=>
      string(22) "(object value omitted)"
      ["namespaceURI"]=>
      NULL
      ["prefix"]=>
      string(0) ""
      ["localName"]=>
      string(4) "DATA"
      ["baseURI"]=>
      string(83) "file:///C:/Program%20Files%20(x86)/EasyPHP-12.1/www/web_tomato/primerManagment/www/"
      ["textContent"]=>
      string(30)=> "test1test2test3test4test5test6"
    }
    Mais bizarrement mes tags intermédiaires (myName, champ, field, country) n'apparaissent pas.

    Bref.

    Quand j'essaie de parser ma structure XML avec la fonction children() comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $test = $root->children();
    J'obtiens tout le temps le message d'erreur suivant portant sur la ligne appelant la fonction children() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error:  Call to undefined method DOMElement::children()
    Et je ne comprends vraiment pas pourquoi ... C'est comme si la fonction children() n'existait pas.

    Si vous avez besoin de plus d'informations n'hésitez pas à me le demander.

    Merci beaucoup !

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    $xmldoc = new DomDocument( '1.0' );
    D'abord, ce n'est déjà pas SimpleXML. C'est DOM et il'y a un forum consacré à lui tout seul.

    C'est comme si la fonction children() n'existait pas.
    Il n'y a pas cette fonction children() dans DOM.

    SimpleXML documentation:
    http://www.php.net/manual/en/book.simplexml.php

    Son fonction children() ici:
    http://www.php.net/manual/en/simplex...t.children.php

    DOM documentation:
    http://php.net/manual/en/book.dom.php

    et vous voyez il n'y a pas cette fonction là.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur bioinformaticien
    Inscrit en
    Avril 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur bioinformaticien
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 139
    Points : 49
    Points
    49
    Par défaut
    Oulà en effet, je n'y étais pas du tout ...

    Comme ce n'est pas mon projet principal, je ne m'y consacre pas à 100%.

    Merci beaucoup !

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

Discussions similaires

  1. Problème avec fonctions et string/char
    Par vdumont dans le forum C++
    Réponses: 6
    Dernier message: 08/04/2006, 16h54
  2. Problème avec fonction
    Par Goundy dans le forum C
    Réponses: 24
    Dernier message: 01/10/2005, 20h17
  3. [MFC][WINSOCK] Problème avec fonction recv
    Par Le Farfadet dans le forum MFC
    Réponses: 4
    Dernier message: 23/09/2005, 11h00
  4. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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