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 18/05/2008, 15h46   #1
Invité de passage
 
Inscription : février 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 15
Points : 2
Points : 2
Par défaut [DOM] Insérer un nœud entre 2 balises

bonjour,
comment insérer du contenu etre 2 balises d'un fichier xml existant?
imene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 16h01   #2
Membre éprouvé
 
Avatar de SphynXz
 
Développeur Web
Inscription : mars 2008
Messages : 439
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 439
Points : 474
Points : 474
Citation:
Envoyé par l'en tête du forum..
Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
si tu avais consacré à peine 5 secondes à cliquer sur le premier lien, tu aurais trouvé très clairement : DOM

le premier tuto est, en plus, pile ce qu'il te faut
__________________
I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
Pour détourner un avion, il faut monter dedans - Frédéric beigbeder
SphynXz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 16h03   #3
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 835
Points : 3 468
Points : 3 468
Méthode DOMNode::insertBefore( ) http://fr.php.net/manual/fr/domnode.insertbefore.php
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 16h51   #4
Membre éclairé
 
Avatar de htr999
 
Étudiant
Inscription : février 2008
Messages : 331
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 331
Points : 376
Points : 376
il existe aussi à partir de PHP5 les fonctions simpleXML pour tout ce qui est de la manip XML

+ une simple lecture du fichier
Code :
$xml = simpleXML_load_string(file_get_contents($nomFich));
+ une simple mise a jour
Code :
$xml->taBalise[numeroIndex] = contenu
+ simple écriturele tour est joué !.!
htr999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 12h03   #5
Invité de passage
 
Inscription : février 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 15
Points : 2
Points : 2
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
$dom = new DomDocument();
$dom->load('f.xml');
 
// créer un noeud
$nouveauPays = $dom->createElement("pays");
$nomPays = $dom->createTextNode("Royaume-Uni");
 
//inserer le noeud
$nouveauPays->appendChild($nomPays);
$europe = $dom->getElementsByTagName("europe")->item(0);
$europe->appendChild($nouveauPays);
?>


f.xml
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<continents>
<europe>
<pays regime="republique">France</pays>
<pays regime="monarchie constitutionnelle">Belgique</pays>
<pays regime="monarchie constitutionnelle">Espagne</pays>
</europe>
<asie>
<pays regime="empire">Japon</pays>
<pays>Inde</pays>
</asie>
</continents>

la c'est pour insérer <pays>royaume unis</pays> à l'interieur de balise <europe></europe>.

mais comment faire pour voir le résultat dans le xml??
imene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 12h22   #6
Invité de passage
 
Inscription : février 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 15
Points : 2
Points : 2
il fallait ajouter $dom->save('f.xml');
imene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 15h12   #7
Invité de passage
 
Inscription : février 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 15
Points : 2
Points : 2
encore une question,j'ai inserer du text entre 2 balises,ce text contient des balises,à l'execution la "<" devient "&lt;" et ">" "&#xD", comment faire pour que ça m'affiche les bons caracteres???
imene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 15h56   #8
Invité de passage
 
Inscription : février 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 15
Points : 2
Points : 2
et encore un autre probleme.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?php
$dom = new DomDocument();
$dom->load('psm_raffine\M4.xml');
$modelclass=$dom->documentElement;
$modelclass = $dom->getElementsByTagName("ModelClass");
foreach ($modelclass as $class)
{if ($class->getAttribute("xmi.id")=="237" AND  $class->getAttribute("name")=="chat")
 
 
// créer un noeud
{$nouveaumodel= $dom->createElement("ModelReference");
$nomPays = $dom->createTextNode($_POST['zone']);}
}
//inserer le noeud
$nouveaumodel->appendChild($nomPays);
$e= $dom->getElementsByTagName("ModelNamespace.contents")->item(0);
 
$e->appendChild($nouveaumodel);
 
$dom->save('psm_raffine\M4.xml');
 
?>
là au lieu de m'inserer le noeud dans <ModelClass xmi.id="227" name="chat"></ModelClass>
il me l'insere au premier ModelClass rencontré!!!
y a t'il un probleme dans la boucle???
imene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 11h14   #9
Invité de passage
 
Inscription : février 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 15
Points : 2
Points : 2
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
 
 
$dom = new DomDocument();
$dom->load('psm_raffine\M4.xml');
 
 
// créer un noeud
$nouveaumodel= $dom->createElement("ModelReference");
$nomPays = $dom->createTextNode($_POST['zone']);
 
//inserer le noeud
$modelclass = $dom->getElementsByTagName("ModelClass");
foreach ($modelclass as $class)
if ($class->getAttribute("xmi.id")==$_POST['idf1'] AND  $class->getAttribute("name")==$_POST['classe1'])
{$nouveaumodel->appendChild($nomPays);
$e= $class->getElementsByTagName("ModelNamespace.contents")->item(0);
$e->appendChild($nouveaumodel);
}
$dom->save('psm_raffine\M4.xml');
?>
comme ca ca marche
imene12 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 01h30.


 
 
 
 
Partenaires

Hébergement Web