begin process at 2012 05 31 05:04:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Pb dom pr gnérer du xml


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb dom pr gnérer du xml

mercredi 31 mai 2006 à 21:52:07 | Pb dom pr gnérer du xml

chanandler

Bonjour,

J'ai code php qui utilise dom qui marche presque sauf qu'il ne fais pas complétement ce que je veux, le code sera mieux qu'un long discours donc le voici.

dom.php

Code :
<?php
$dom=new DomDocument();

$dom->load("fichier.xml");


$newphoto = $dom->createElement('photo');
$newnom = $dom->createElement('nom','bapteme.jpg');
$newdescription = $dom->createElement('description');
$newevenenement = $dom->createElement('evenenement','bapteme');
$newprotagoniste = $dom->createElement('protagoniste');
$newpersonnage = $dom->createElement('max','personnage');
$newpersonnage = $dom->createElement('personnage','caroline');


$dom->appendChild($newphoto);
$newphoto->appendChild($newnom);
$newphoto->appendChild($newdescription);
$newphoto->appendChild($newevenenement);
$newphoto->appendChild($newprotagoniste);
$newphoto->appendChild($newpersonnage);
$newphoto->appendChild($newpersonnage);

$dom->formatOutput = true;

$dom->save("fichier.xml");
?>

Mon fichier xml

Code :
<?xml version="1.0" encoding="ISO-8859-1"?>
<galerie>
<photo>
<nom>mariage.jpg</nom>
<description>
<evenement>mariage</evenement>
<protagoniste>
<personnage>Mamie</personnage>
<personnage>pablo</personnage>
</protagoniste>
</description>
</photo>
</galerie>

Ce que j'obtient aprés dom.
Code :
<?xml version="1.0" encoding="ISO-8859-1"?>
<galerie>
<photo>
<nom>mariage.jpg</nom>
<description>
<evenement>mariage</evenement>
<protagoniste>
<personnage>Mamie</personnage>
<personnage>pablo</personnage>
</protagoniste>
</description>
</photo>

</galerie>
<photo>
<nom>bapteme.jpg</nom>
<description/>
<evenenement>bapteme</evenenement>
<protagoniste/>
<personnage>caroline</personnage>
</photo>

donc voila le code que j'arrive a créé en rouge grace a mon fichier php sauf que je n'arrive pas a que ca ressemble exactement a ce qui est en bleu et bien sur j'aimerais que ce bout de code se retrouve entre les balise galerie

Merci a vous !
jeudi 1 juin 2006 à 07:57:18 | Re : Pb dom pr gnérer du xml

malalam

Administrateur CodeS-SourceS
Hello,

Déjà, tu réécris $newpersonnage, donc seul le 2d est pris en compte, c'est normal...
Donc :
$newpersonnage = $dom->createElement('max','personnage');
$newpersonnage2 = $dom->createElement('personnage','caroline');

Ensuite, tu "appendes mal". Ce qui est,pardonne-moi, un peu inquiètant. Le sens de DOM t'a échappé. Tu ne prends pas du tout en compte la notion noeud parent/noeud enfant.

Bon en gros :
$dom->appendChild($newphoto);
$newphoto->appendChild($newnom);
$newphoto->appendChild($newdescription);

// là, tout va bien...mais maintenant :

$newdescription->appendChild($newevenenement);
$newevenenement->appendChild($newprotagoniste);
$newprotagoniste->appendChild($newpersonnage);
$newprotagoniste->appendChild($newpersonnage2);

ca devrait aller mieux (non testé et fait entre 2 cafés et avant ma douche alors bon...).
Bref, tu dois faire le appendChild () sur le noeud parent! le noeud parent immédiat.
jeudi 1 juin 2006 à 07:58:37 | Re : Pb dom pr gnérer du xml

malalam

Administrateur CodeS-SourceS
ah et puis t'as inversé max et personnage ici, tien : $newpersonnage = $dom->createElement('max','personnage');
jeudi 1 juin 2006 à 10:00:31 | Re : Pb dom pr gnérer du xml

chanandler

Merci ca marche nickel mais serais tu pourquoi elle se présente en ligne et plus en colonne mes balises.

merci encore

<?xml version="1.0" encoding="ISO-8859-1"?>
<galerie>
<photo>
<nom>mariage.jpg</nom>
<description>
<evenement>mariage</evenement>
<protagoniste>
<personnage>Mamie</personnage>
<personnage>pablo</personnage>
</protagoniste>
</description>
</photo>
<photo><nom>bapteme.jpg</nom><description><evenenement>bapteme</evenenement><protagoniste><personnage>max</personnage><personnage>caroline</personnage></protagoniste></description></photo></galerie>


jeudi 1 juin 2006 à 10:09:36 | Re : Pb dom pr gnérer du xml

malalam

Administrateur CodeS-SourceS

Parce que le début de ton fichier n'a pas été créé via DOM et php, mais à la main, je suppose, sous un logiciel dédié (Altova..?)
Et que DOM PHP ne rajoute pas de \n à la fin de chaque "ligne"...
Si tu veux le voir en arbo, n'utilise pas php. IL fauyt le visualiser avec ujn logiciel permettant de réorganiser le xml de cette manière (Altova, par exemple).

 

jeudi 1 juin 2006 à 10:18:04 | Re : Pb dom pr gnérer du xml

chanandler

Bas en faite j'ai utilisé un traitement de texte tous béte pour faire mon xml voila donc tu me conseil d'utiliser Altova pour créér mon xml ou sinon de créér tous mon fichier via Dom.

Meci de ton aide.
jeudi 1 juin 2006 à 10:35:02 | Re : Pb dom pr gnérer du xml

malalam

Administrateur CodeS-SourceS
Ben c'est pas pareil lol...
Si c'est du traitementg générique, à refaire souvent, faut utiliser PHPO et DOM.

Altova est juste un éditeur de XML. Tu peux l'utiliser pour en créer oui...ou en modifier...mais ça dépend, quoi.
Je te disais juste que si tu voulaius voir un xml créé par PHP de jolie manière, juste pour le visualiser, Altova est un bon moyen de le faire (mais c'est payant hein).
jeudi 1 juin 2006 à 10:41:06 | Re : Pb dom pr gnérer du xml

chanandler

Merci a toi, je vais voir ce qu eje peux faire pour une meilleur mise en page car si j'ai beaucoup de photo ca risque de devenir le bordelle lol si je veux ouvrir le fichier pour
visualiser quelque chose.

Merci !
jeudi 1 juin 2006 à 14:02:17 | Re : Pb dom pr gnérer du xml

chanandler

Jai une petite question subsidiére si ca te derange pas.
donc voila jai fais quelque test pour mon probléme et en faisant mes teste j'ai remarqué que mon code étais bien indenté quand il étais en-dehors des
balises <galerie> donc deja pourquoi la ca marche et sinon j'ai essayé de voir pour ajouter a chaque ajout de photo de mettre la balise </galerie> a la fin mais ca ne marche pas
et en plus je n'arrive pas a enlever l'ancienne balise </galerie> qui doit étre enlever avant l'ajout de photo sinon il y aura 2 balises galerie.

Merci a toi.
jeudi 1 juin 2006 à 14:24:25 | Re : Pb dom pr gnérer du xml

malalam

Administrateur CodeS-SourceS
Je n'ai rien compris. Réexplique stp.

1 2

Cette discussion est classée dans : code, dom, createelement, appendchild, newphoto


Répondre à ce message

Sujets en rapport avec ce message

PHP et DOM [ par Hello5562 ] Bonjour, Je dois modifier un fichier XML avec du PHP mais je ne comprend pas d'où vient mon erreur. mon code : [code=php]load($fichier)) { $user - php dom probleme xml [ par G4uthier ] Bonjour, j'ai un probleme pour crer mon fichier XML :il me met une erreur : Warning: domdocument() expects parameter 2 to be long, string given in /e Probleme modifier xml ! [ par chanandler ] Bonjour,Jai créé un script pour modifier un fichier xml a un certain endroit mais ca marche pas et je voie pas où est l'erreur pourriez vous m'aider m XML d'un tableau [ par gazalii ] Bonjour,je veux faire un flux XML sous la forme suivante       test    test2    <v DomXML, TextNode tronqué ... [ par JoJo738 ] Helo tout le monde :pJe suis depuis ce matin sur une class de log, et je rencontre un petit problème ...Je veux enregistrer la Trace de mon erreur ... Extraire du contenu HTML avec Xpath [ par thunderfear ] Bonjour, Je suis entrain de développer une fonction qui devra exporter une partie d'un document HTML. J'utilise le chemin Xpath pour bien spécifier petit soucis sur PHP/JS [ par oliopur ] Voici les p'tit problemes : Sur une base de donnée j'ai un champ qui contient la date et l'heure de suppression future d'un enregistrement sous la for Fenêtre POPUP avec envoi de données via méthode GET [ par KieferS ] Bonjour, Je rencontre une difficulté sur l'affichage d'une fenêtre popup. En fait, j'ai un formulaire qui m'affiche un listing de références. A chaqu Fenêtre POPUP avec envoi de données via méthode GET [ par KieferS ] Bonjour, Je rencontre une difficulté sur l'affichage d'une fenêtre popup. En fait, j'ai un formulaire qui m'affiche un listing de références. A cha System de temps qui s'ecoule, Bug continuel a me donner mal a la tete :) [ par belette321 ] Bon j'explique je fait un system de vote, les gens on droit de voter tout les 6h. Quand quelqu'un vote sa insert $udate dans la base de donner comme


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales