Mammouth du PHP |
2937 Messages
10 déc. 2007, 16:17
J'ai réalisé le code ci-dessous mais rien ne s'affiche.
$xml_cat = simplexml_load_file($flux);
$i=1;
foreach($xml_cat->ArrayOfString as $element) {
echo '$element->string[$i]';
$i++;
}
Voici un extrait du flux XML :
Code : Tout sélectionner
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sonnerie.com">
<string>Nouveautés</string>
<string>Hits des Ventes</string>
<string>Hits Radio</string>
<string>Hits Rap/Rnb</string>
</ArrayOfString>
Le code du flux XML tel quel me fait dire que l'élément ArrayOfString est l'élément racine de ton flux. Par conséquent, $xmlcat -> ArrayOfString ne marchera jamais, puisque la variable $xmlcat, telle qu'elle est définie, sélectionne déjà l'élément racine. Autrement dit,
$xml_cat = simplexml_load_file ($flux);
// Sélection des attributs de l'élément racine
echo $xml_cat['xmlns:xsd']; // Affiche l'espace de nom XSD (http://www.w3.org/2001/XMLSchema)
echo $xml_cat['xmlns:xsi']; // Affiche l'espace de nom XSI (http://www.w3.org/2001/XMLSchema-instance)
echo $xml_cat['xmlns']; // Affiche l'espace de nom de ton flux (http://www.sonnerie.com)
// Sélection des éléments string
foreach ($xml_cat -> string as $element)
{
echo htmlspecialchars ((string) $element); // Affiche le contenu de chaque élément string (en prenant soin d'échapper les &, < et > par leur entité HTML respective)
}