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 25/12/2007, 23h17   #1
Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 202
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 202
Points : 63
Points : 63
Envoyer un message via MSN à Krustig
Par défaut [DOM] Intégrer du PHP dans un .xml

Bonsoir,

Je souhaiterais insérer du code php dans un fichier .xml afin de pouvoir éditer le contenu de mon fichier .xml en fonction du contenu de ma BDD mysql

Voici le code xml :
Code xml :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 <?xml version="1.0" encoding="UTF-8" ?> 
- <config>
  <param name="mp3" value="robot_rock.mp3|technologic.mp3|television.mp3|steam_machine.mp3|around_the_world.mp3|too_long.mp3|face_to_face.mp3|interlude.mp3|one_more_time.mp3|brainwashers.mp3|alive.mp3|da_funk.mp3|human_after_all.mp3" /> 
  <param name="title" value="Daft Punk - 01 - Robot rock|Daft Punk - 02 - Technologic|Daft Punk - 03 - Television rules the nation|Daft Punk - 04 - Steam machine|Daft Punk - 05 - Around the world|Daft Punk - 06 - Too long|Daft Punk - 07 - Face to face (Harder remix)|Daft Punk - 08 - Interlude|Daft Punk - 09 - One more time (Aerodynamic)|Daft Punk - 10 - The brainwashers|Daft Punk - 11 - Alive|Daft Punk - 12 - Da Funk|Daft Punk - 13 - Human after all" /> 
  <param name="height" value="290" /> 
  <param name="width" value="330" /> 
  <param name="bgcolor" value="303030" /> 
  <param name="bgcolor1" value="3a3a3a" /> 
  <param name="bgcolor2" value="444444" /> 
  <param name="buttoncolor" value="dddddd" /> 
  <param name="buttonovercolor" value="84ff00" /> 
  <param name="slidercolor1" value="dddddd" /> 
  <param name="slidercolor2" value="cccccc" /> 
  <param name="sliderovercolor" value="84ff00" /> 
  <param name="loadingcolor" value="000000" /> 
  <param name="textcolor" value="888888" /> 
  <param name="playlistcolor" value="2e2e2e" /> 
  <param name="currentmp3color" value="84ff00" /> 
  <param name="scrollbarcolor" value="cccccc" /> 
  <param name="scrollbarovercolor" value="84ff00" /> 
  <param name="showvolume" value="1" /> 
  <param name="showinfo" value="1" /> 
  </config>

J'aurais aimé que cette partie de code soit variable et non fixe :

Code xml :
1
2
<param name="mp3" value="robot_rock.mp3|technologic.mp3|television.mp3|steam_machine.mp3|around_the_world.mp3|too_long.mp3|face_to_face.mp3|interlude.mp3|one_more_time.mp3|brainwashers.mp3|alive.mp3|da_funk.mp3|human_after_all.mp3" /> 
  <param name="title" value="Daft Punk - 01 - Robot rock|Daft Punk - 02 - Technologic|Daft Punk - 03 - Television rules the nation|Daft Punk - 04 - Steam machine|Daft Punk - 05 - Around the world|Daft Punk - 06 - Too long|Daft Punk - 07 - Face to face (Harder remix)|Daft Punk - 08 - Interlude|Daft Punk - 09 - One more time (Aerodynamic)|Daft Punk - 10 - The brainwashers|Daft Punk - 11 - Alive|Daft Punk - 12 - Da Funk|Daft Punk - 13 - Human after all" />

Le code ci dessous est celui d'un lecteur mp3. Je souhaiterais pouvoir modifier le contenu de la liste de lecture via PHP et Mysql.

Exemple : value = $playlist (<-- possible ?)

Mais comment faire ?

Merci de votre aide et très bonne journée,
Krustig
Krustig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 02h17   #2
Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 202
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 202
Points : 63
Points : 63
Envoyer un message via MSN à Krustig
Bonjour !

J'ai trouvé une solution : dom

Mais j'ai un problème : mon noeud ne s'ajoute pas entre la balise <config> (cf code post1)

Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$dom = new DomDocument;
$dom->load("playlist1.xml");
 
//creation d'un élement
$newtracklist = $dom->createElement("test");
 
//ajout d'un attribut
$newtracklist->setAttribute("nom", "mp3");
$newtracklist->setAttribute("value", "title1|title2");
 
//insertion du noeud dans le doc xml
$config = $dom->getElementsByTagName("config")->item(0);
$config->appendChild($newtracklist);
?>
J'ai opté pour une deuxième solution : modifier directement le noeud existant.

Pb : je localise bien le noeud mais je ne sais pas comment modifier l'attribut... setAttribute() ne semble pas fonctionner...

Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$dom = new DomDocument;
$dom->load("playlist1.xml");
$tracklist = $dom->getElementsByTagName("param");
foreach($tracklist as $param)
{
	if($param->getAttribute("name") == "mp3")
	{
		echo $param->getAttribute("value");
		$param->setAttribute("value", "Tile1|Title2");
	}
 
	echo "<br/>";
}
?>
Merci de votre aide

PS : j'ai utilisé http://eusebius.developpez.com/php5dom/ pour rédiger le code ci-dessous
Krustig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 11h12   #3
Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 202
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 202
Points : 63
Points : 63
Envoyer un message via MSN à Krustig
La solution deux marche, comme la une

Il suffisait juste de rajouter afin d'enregistrer le fichier :

Code :
$dom->save("playlist1.xml");
Krustig 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 16h42.


 
 
 
 
Partenaires

Hébergement Web