Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2010, 16h45   #1
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 158
Points : 26
Points : 26
Par défaut Traitement XML via un autre xml

Bonjour,

je vous explique mon problème. Dans un premier temps je suis débutant.

j'ai commencé par un code simple qui me permet d'afficher le nombre d'éléments présents dans mon fichier XML.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
echo "test 1 \n";
 
$xml=simplexml_load_file('Data.xml');
 
echo "test 2 \n";
	$msg = count($xml->VodItem)." items dans le catalogue \n";
	echo $msg ."Mise a jour des donnees . \n";
 
echo "test 3";
 
?>
j'ai essayé aussi directement avec le lien.

ce qui est censé dans un premier temps m'afficher le nombre de balise VodItem présentent. cela ne me retourne rien alors que le fichier est plein.

Par la suite en faite j'aurai à effectuer une lecture de cette xml, récupérer certaine donnée et les re enregistrer dans un nouveau fichier xml.

je ne sais pas trop comment réaliser cela, je vous remercie d'avance de votre aide pour d'une part le premier problème et d'autres part le deuxième.

Je ne demande pas forcement une réponse toute faite, les tutos sont les bienvenue aussi (si possible en français).

voici le lien de mon xml:

Code :
http://www.canalplay.com/pages/partners/default.aspx?paid=177&signature=0zyVk3OD2UJZWKEApqdggvBR2F4&published=1&said=346&type=2
jameson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 18h24   #2
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 474
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 474
Points : 681
Points : 681
Envoyer un message via Skype™ à hornetbzz
Voila les 3 docs que j'ai utilisées pour construire une petite classe class XmlConstruct extends XMLWriter :

Docs: http://fr.php.net/manual/fr/ref.xmlwriter.php#89047
Docs: http://gilles-chagnon.developpez.com...cepts-de-base/
Docs: http://eusebius.developpez.com/php5dom/
hornetbzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 21h29   #3
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 158
Points : 26
Points : 26
Bonsoir et merci pour ces docs.

Quand je fais ma lecture de mon xml en local pas de problème je trouve mes éléments.

J'arrive à creer mon fichier xml avec mes éléments qui m'intéressent.

Seulement je ne sais pas comment faire pour lire mon xml. En faites je m'explique.

exemple xml:
Code :
<VodItem id="3496" rsac="16843009" score="0" released="2006-02-15T00:00:00" until="2011-12-29T00:00:00" year="1988" duration="85" category="Manga" type="Long métrage d'animation" nationality="Japon" language_vo="Français" newrelease="0" ratingid="1" note_spectateurs="4.20"><Copyright>© 1988 Akiyuki Nosaka/Shinchosha Company</Copyright><Title_vo>Le Tombeau des lucioles</Title_vo><ShortTitle_vo>Tombeau des lucioles</ShortTitle_vo><Title>Le Tombeau des lucioles</Title><ShortTitle>Tombeau des lucioles</ShortTitle><Description>Japon. 1945. Après les bombardements américains, Seita et sa petite soeur Setsuko, perdent tragiquement leurs parents. Orphelins, ils sont recueillis à contrecoeur par une tante détestable. Préférant se réfugier dans un abri rempli de milliers de lucioles, ils vont vivre avec les moyens du bord et faire face aux pires difficultés dans un pays détruit par la guerre.  (Source Canalplay &lt;a href="http://www.canalplay.com" alt="Canalplay"&gt;vod&lt;/a&gt;)</Description><DefaultLink>http://www.canalplay.com/pages/movies/detail.aspx?aid=297&amp;said=305&amp;mid=3496&amp;mkid=177</DefaultLink><Images><Image typeid="1">http://canalplay-publishing.canal-plus.com/movies/3496/pictures/h.jpg</Image><Image typeid="9">http://canalplay-publishing.canal-plus.com/movies/3496/pictures/htv.gif</Image><Image typeid="17">http://canalplay-publishing.canal-plus.com/movies/3496/pictures/3496.jpg</Image></Images><Directors><Director id="11269">Isao Takahata</Director></Directors><Categories><Category id="194" rank="0" typeid="3"><Title>Collection Nautiljon</Title><Parent id="297">Cinema</Parent><Link>http://www.canalplay.com/pages/movies/detail.aspx?aid=297&amp;said=194&amp;mid=3496&amp;mkid=177</Link></Category><Category id="305" rank="0" typeid="1"><Title>Animation</Title><Parent id="297">Cinema</Parent><Link>http://www.canalplay.com/pages/movies/detail.aspx?aid=297&amp;said=305&amp;mid=3496&amp;mkid=177</Link></Category><Category id="657" rank="0" typeid="6"><Title>Les films préférés d'Albert Dupontel</Title><Parent id="297">Cinema</Parent><Link>http://www.canalplay.com/pages/movies/detail.aspx?aid=297&amp;said=657&amp;mid=3496&amp;mkid=177</Link></Category></Categories></VodItem><VodItem id="3497" rsac="33686018" score="0" released="2006-02-15T00:00:00" until="2011-12-29T00:00:00" year="2002" duration="85" category="Manga" type="Long métrage d'animation" nationality="Japon" language_vo="Français" newrelease="0" ratingid="3" note_spectateurs="2.40"><Copyright>© 2002 AIC/PD PROJECT</Copyright><Title_vo>Parasite Dolls</Title_vo><ShortTitle_vo>Parasite Dolls</ShortTitle_vo><Title>Parasite Dolls</Title><ShortTitle>Parasite Dolls</ShortTitle><Description>Suite à un tremblement de terre dévastateur, Tokyo a été anéantie. Genom, une puissante société, a reconstruit la cité en un temps record grâce aux boomers, des androïdes dotés d'une intelligence artificielle. La création de l'AD Police a même été nécessaire pour maintenir l'ordre entre humains et robots. Mais une série de meurtres mystérieux pourrait bien mettre à mal la cohabitation entre l'Homme et la Machine.  (Source Canalplay &lt;a href="http://www.canalplay.com" alt="Canalplay"&gt;vod&lt;/a&gt;)</Description><DefaultLink>http://www.canalplay.com/pages/movies/detail.aspx?aid=297&amp;said=305&amp;mid=3497&amp;mkid=177</DefaultLink><Images><Image typeid="1">http://canalplay-publishing.canal-plus.com/movies/3497/pictures/h.jpg</Image><Image typeid="9">http://canalplay-publishing.canal-plus.com/movies/3497/pictures/htv.gif</Image><Image typeid="17">http://canalplay-publishing.canal-plus.com/movies/3497/pictures/3497.jpg</Image></Images><Directors><Director id="11266">Yoshinaga Naoyuki</Director></Directors><Categories><Category id="305" rank="0" typeid="1"><Title>Animation</Title><Parent id="297">Cinema</Parent><Link>http://www.canalplay.com/pages/movies/detail.aspx?aid=297&amp;said=305&amp;mid=3497&amp;mkid=177</Link></Category><Category id="310" rank="0" typeid="1"><Title>Fantastique / SF</Title><Parent id="297">Cinema</Parent><Link>http://www.canalplay.com/pages/movies/detail.aspx?aid=297&amp;said=310&amp;mid=3497&amp;mkid=177</Link></Category></Categories></VodItem>
comme vous pouvez le voir dans cette exemple j'ai deux VodItem, dans ces vodItem je voudrais recuperer l'id le year , title et category par exempe.

Pour cela j'ai fait un
Code :
for ($i=0,$i<count($xml->(VodItem), $i++
A peu prêt ça j'ai peut être fait des fautes mais là, mais sur mon code c'est juste.

Et pour chaque voditem je voudrais récupérer mes données . Comment je puis je faire.

je vous remercie et je vous souhaite une bonne soirée si je me reconnect pas
jameson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 12h22   #4
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 158
Points : 26
Points : 26
Bon j'ai réussi à récupérer mes données et à faire mon xml.

maintenant j'ai un petit probleme:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
	foreach ($xmlData->children() as $node)
$arr = $node->attributes();
 
// Ajouter les noeuds 
    $item = $xml->addChild("Item");
    $item->addChild("Title",($node->Title));
    $item->addChild("Description",($node->Description));
    $prod = $item->addChild("Director", ($node->Directors));
    $actor = $item->addChild("Actor",($node->Actors));
 
	// Ajout d'attributs
		//For item
	$item->addAttribute("id",$arr["id"]);
    $item->addAttribute("Year",$arr["year"]);
    $item->addAttribute("Category",$arr["category"]);
 
    	//For Producteur
    $prod->addAttribute("id",$arr["id"]);    
    	//For Acteur
    $actor->addAttribute("id",$arr["id"]);
voila ce que je fait pour récupérer mes données.
Seul probleme dans mon fichier xml initial j'ai

j'ai un enfant Voditem avec plusieurs attribut dont " ID " par la suite j'ai un autre enfant Director avec attribut qui contient lui aussi " ID ".

Seule probleme quand je recupere mes données:

Code :
    $prod->addAttribute("id",$arr["id"]);
je recupere l'id de mon premier enfant et non celui de directors.

Comment puis je faire.
jameson est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h47.


 
 
 
 
Partenaires

Hébergement Web