Utilisation simpleXML [php]

Résolu
blaskunk -  
 Utilisateur anonyme -
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. Utilisateur anonyme
     
    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
    0
  2. blaskunk
     
    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 ....
    0
    1. Utilisateur anonyme
       
      $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;
      }
      0
    2. blaskunk
       
      merci de ta réponse IWS,
      j'ai pu résoudre mon pb grâce à ton explication
      ;) thks
      0
    3. Utilisateur anonyme
       
      Super, bonne continuation
      0