Utilisation simpleXML [php]

Résolu
Bonjour,

Je n'arrive pas à trouver la bonne méthode pour parser du xml contenu dans une de mes variables.

//var_dump($wc_data); => m'affiche mon contenu xml que je souhaite parser...
				
				$xml = simplexml_load_file($wc_data);
// => le pb c que c'est pas un file
				echo $xml->getName() . "<br />";


Quelqu'un saurait-il parser du contenu xml dans une variable ?

2 réponses

  1. Vous pouvez utilisez Dom, c'est pas mal :

    $objXML = new DOMDocument();
    if($objXML->load(fichier)) {
    $elements = $objXML->getElementsByTagName('elements');
    foreach($elements as $element) {
    $var=$element->getElementsByTagName('tag')->item(0)->nodeValue;
    }
    }

    pour parser un fichier du genre

    <?xml version="1.0" encoding="UTF-8"?>
    <elements>
    <element>
    <tag>coucou<tag>
    </element>
    </elements>

    Cordialement
    1. Merci de ta réponse internetwebservices,

      donc en fait dans ma variable $wc_data j'ai ceci :
      <ClubMember>
      <FirstName>toto</FirstName>
      <LastName>tata</LastName>
      <Email>toto@yahoo.fr</Email>

      <City>paris</City>
      <ZipCode>75015</ZipCode>
      </ClubMember>

      quand je souhaite parser ma variable je fais ceci :
      $objXML = new DOMDocument(); 
      				if($objXML->loadXML($wc_data)) {
      					var_dump($objXML);
      					$elements = $objXML->getElementsByTagName('ClubMember');
      					var_dump($elements);
      				}

      et le résultat de mes 2 var_dump c'est :
      object(DOMDocument)#14 (0) {
      }
      object(DOMNodeList)#15 (0) {
      }
      


      je n'arrive tjs pas à récupérer correctement le contenu ....
      1. $elements est une collection, $objXML est un objet

        pour voir quelque chose, genre récupérer le FirstName il faut faire ensuite

        // Parcours de la collection des ClubMember
        foreach($elements as $element) {
        echo $element->getElementsByTagName('FirstName')->item(0)->nodeValue;
        }
      2. merci de ta réponse IWS,
        j'ai pu résoudre mon pb grâce à ton explication
        ;) thks
      3. Super, bonne continuation