Utilisation simpleXML [php]

Résolu/Fermé
blaskunk - 3 mars 2011 à 10:20
 Utilisateur anonyme - 4 mars 2011 à 12:42
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 ?
A voir également:

2 réponses

Utilisateur anonyme
3 mars 2011 à 10:32
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
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
Utilisateur anonyme
3 mars 2011 à 11:07
$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
merci de ta réponse IWS,
j'ai pu résoudre mon pb grâce à ton explication
;) thks
0
Utilisateur anonyme
4 mars 2011 à 12:42
Super, bonne continuation
0