Posez votre question Signaler

Simplexml et php

franzy51 1Messages postés 19 août 2008Date d'inscription - Dernière réponse le 1 sept. 2008 à 19:04
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?
Lire la suite 

Simplexml et php »

Suggestions
1 réponses
Réponse
+0
moins plus
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';
Ajouter un commentaire
Ce document intitulé « simplexml et php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?