Simplexml et php

Bonjour,
j'ai deux questions concernant simplexml et php
voici d'abord mon code xml
<?xml version="1.0" encoding="iso-8859-1"?>
<produits>
<produit>
<idproduit>58500150</idproduit>
<codearticle></codearticle>
<codebarre>3760055184052</codebarre>
<reffournisseur></reffournisseur>
<nomfournisseur></nomfournisseur>
<nomproduit><![CDATA[xxxxx]]></nomproduit>
<etat>neuf</etat>
<categorie><![CDATA[xxx]]></categorie>
<theme>xxxx</theme>
<prix>00</prix>
<urlficheproduit><![CDATAhttp://xxxxxxxxx/sort1%3Ft%3DTRACKING_CODE' target='_blank' rel='nofollow'>http://xxxxxxxxxxxxxx.redir?id_compteur=ID_COMPTEUR&url=http://xxxxxxxxx/sort1%3Ft%3DTRACKING_CODE]></urlficheproduit>
<urlimage><![CDATAhttp://xxxxx.jpg]></urlimage>
<urlimageoriginal><![CDATA[http:xxxxjpg]]></urlimageoriginal>
<genre><![CDATA[Musical, Spectacle]]></genre>
<realisateur><![CDATA[., xxx]]></realisateur>
<acteurs></acteurs>
<interprete></interprete>
<editeur><![CDATA[xxx]]></editeur>
<descriptif><![CDATA[xxxx.]]></descriptif>
<disponibilite>xx</disponibilite>
<dateexpedition>xx</dateexpedition>
<fraisdeport>00</fraisdeport>
</produit>
</produits> 

j'ai fait un affichage avec simplexml de cette façon:
<?php
$produits = simplexml_load_file('test.xml');

foreach($produits->produit as $produit) {
echo '<table width="300">';
echo '<tr>';
echo '<td rowspan="2"><img src="'.($produit->urlimage).'"></td>';
echo '<td colspan="2">',utf8_decode($produit->nomproduit).'</td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2">',utf8_decode($produit->descriptif).'</td>';
echo '</tr>';
echo '<tr>';
echo '<td>logo</td>';
echo '<td align="center">',utf8_decode($produit->prix).' €</td>';
echo '<td><a href="'.($produit->urlficheproduit).'" target="_blank">Achetez maintenat</a></td>';
echo '</tr>';
echo '</table>';

}
?>


Maintenant je n'aimerai afficher que les résultats par <genre>Musical, Spectacle</genre> et pas les autres comment faire?

Mon autre question dans le fichier xml il faut remplacer ID_COMPTEUR et TRACKING_CODE par mes propres numéro, dois-je le faire à la main(fichier de 30 Mo) ou existe t'il une autre façon?
Configuration: Windows Vista
Firefox 3.0.1

1 réponse

  1. un peu en retard certes, je viens de commencer simplexml et voici ce que j'ai trouvé qui pourra peut etre t'aider

    Par contre, ce code ajoute un attribut ID inexistant à chaque element de niveau2. (créer différent de modifier comme tu le demande)
    $xmlstr = simplexml_load_file($filename); 
    
    foreach($xmlstr->Niveau1->children() as $x) {//liste les enfants du niveau1
    	$a=0;//a chaque enfant trouvé resette le compteur
    	
    	//passe tous les tags NomduTag de chaque enfant trouvé, 
    	foreach($x->NomduTag as $name => $node){
    		$a++;
    		$node->addAttribute('id', $a);//ajoute un attribut ID avec la valeur $a au tag courant
    	} 
    }


    pour modifier un attribut existant, ca doit se jouer avec ca:
    SimpleXMLElement->attributes()
    SimpleXMLElement->attributes()->nomAttribut = 'valeur';
    0