IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XML] Traitement XML via un autre xml


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut [XML] 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.canalplay.com/pages/partners/default.aspx?paid=177&signature=0zyVk3OD2UJZWKEApqdggvBR2F4&published=1&said=346&type=2

  2. #2
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut
    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/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut
    Bon j'ai réussi à récupérer mes données et à faire mon xml.

    maintenant j'ai un petit probleme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
        $prod->addAttribute("id",$arr["id"]);
    je recupere l'id de mon premier enfant et non celui de directors.

    Comment puis je faire.

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/01/2006, 04h30
  2. Arret d'une application via une autre application
    Par MonsieurAk dans le forum Linux
    Réponses: 2
    Dernier message: 28/11/2005, 19h50
  3. Fermer des .exe VB via un autre .exe VB
    Par Gézabel dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 24/10/2005, 12h21
  4. [CF][VB.NET/PPC] Comment installer un .cab via un autre .cab ?
    Par borgfabr dans le forum Windows Mobile
    Réponses: 8
    Dernier message: 04/05/2005, 12h42
  5. Passer pointeur via message à autre prog
    Par YéTeeh dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/08/2003, 23h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo