Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
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 31/05/2006, 21h09   #1
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Par défaut [DOM] Création de balise XML

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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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 ropuge 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 !
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2006, 22h14   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 569
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 569
Points : 2 503
Points : 2 503
Salut, il me semble qu'il y a des inversions dans tes appendChild ; le code suivant semble marchait
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$dom=new DomDocument();
 
$dom->load("fichier.xml");
$galeries = $dom->getElementsByTagName('galerie');
$galerie = $galeries->item(0);
 
 
$newphoto = $dom->createElement('photo');
$newnom = $dom->createElement('nom','bapteme.jpg');
$newdescription = $dom->createElement('description');
$newevenenement = $dom->createElement('evenenement','bapteme');
$newprotagoniste = $dom->createElement('protagoniste');
$newpersonnage1 = $dom->createElement('personnage','max');
$newpersonnage2 = $dom->createElement('personnage','caroline');
 
 
$galerie->appendChild($newphoto);
$newphoto->appendChild($newnom);
$newphoto->appendChild($newdescription);
$newdescription->appendChild($newevenenement);
$newdescription->appendChild($newprotagoniste);
$newprotagoniste->appendChild($newpersonnage1);
$newprotagoniste->appendChild($newpersonnage2);
 
$dom->formatOutput = true;
 
$dom->save("fichier.xml");
Je ne suis pas sûr que la méthode pour récupérer la racine soit très "conventionnelle"
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2006, 22h26   #3
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Merci je rentre bien dans mes balises galerie sauf que mes balises description et protagoniste son pas ouvert et que fermettante et que tout es en ligne maintenant c bizarre

Merci a toi

Code XML :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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></photo></galerie>
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2006, 00h33   #4
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 569
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 569
Points : 2 503
Points : 2 503
Ah bon ? Je te donne le code que j'ai testé

fichier.xml (original)
Code XML :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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>

dom.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$dom=new DomDocument();
 
$dom->load("fichier.xml");
$galeries = $dom->getElementsByTagName('galerie');
$galerie = $galeries->item(0);
 
$newphoto = $dom->createElement('photo');
$newnom = $dom->createElement('nom','bapteme.jpg');
$newdescription = $dom->createElement('description');
$newevenenement = $dom->createElement('evenenement','bapteme');
$newprotagoniste = $dom->createElement('protagoniste');
$newpersonnage1 = $dom->createElement('personnage','max');
$newpersonnage2 = $dom->createElement('personnage','caroline');
 
$galerie->appendChild($newphoto);
$newphoto->appendChild($newnom);
$newphoto->appendChild($newdescription);
$newdescription->appendChild($newevenenement);
$newdescription->appendChild($newprotagoniste);
$newprotagoniste->appendChild($newpersonnage1);
$newprotagoniste->appendChild($newpersonnage2);
 
$dom->formatOutput = true;
 
$dom->save("fichier.xml");
?>
fichier.xml (après application du script)
Code XML :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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>

Je t'ai fait des copier/coller tels quels pour que tu vois ce que j'obtiens

Obtenu avec Apache2 / PHP5

J'espère que ça pourra t'aider
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2006, 09h58   #5
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
Merci ca marche nickel mais serais tu pourquoi elle se présente en ligne et plus en colonne ?

Merci encore !!
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2006, 22h27   #6
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 569
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 569
Points : 2 503
Points : 2 503
Désolé, mais là j'avoue que je ne sais pas du tout

Mais je continue de chercher
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2006, 22h49   #7
Membre du Club
 
Avatar de Shandler
 
Inscription : février 2005
Messages : 485
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 485
Points : 67
Points : 67
merci beaucoup moi aussi je cherche et j'ai pensé a simplexml mais j'arrive pas a comprendre comment on insére des balises dans un fichier.xml comme avec dom.

merci encore
Shandler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h39.


 
 
 
 
Partenaires

Hébergement Web