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 22/05/2008, 09h29   #1
Invité de passage
 
Inscription : mai 2008
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2008
Messages : 6
Points : 1
Points : 1
Par défaut [DOM] écrire dans un xml

Bonjour,
Tout d'abord, désolé si je ne suis pas dans le bon forum, car ma recherche concerne php et xml (dois-je doubler le message ?)
Je viens de découvrir la Galerie vidéo d'Adobe
Elle fonctionne parfaitement.
J'aimerai pouvoir insérer des vidéos avec tous les tags sans passer par l'édition du xml mais via un formulaire (php).
Voici un morceau du code xml :

Code :
1
2
3
4
5
6
7
<videos>
<video preview="vidéo_thumb1.flv" flv="vidéo1.flv" filter2="r0" filter1="i0">
<title><![CDATA[titre]]></title>
<description><![CDATA[commentaire]]></description>
<moreInfo url="http://monblog.com/"><![CDATA[Voir le blog...]]></moreInfo>
</video>
</videos>
Je suis, comme vous l'avez surement deviné, débutant et je ne demande pas forcément le code de la solution mais des pistes pour avancer.
Je suis prêt à apprendre !
En fouinant sur la toile, j'ai entendu parler du simplexml qui semble avoir ses limites et de DOM qui a changé depuis php5...

Merci pour toute piste qui me fera avancer dans mes recherches.
kermit796 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 13h04   #2
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Est-ce que les informations concernant tes vidéos sont stockés dans une base de données ?
(titre, taille, chemin...)
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 13h34   #3
Invité de passage
 
Inscription : mai 2008
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2008
Messages : 6
Points : 1
Points : 1
Non, tout est stocké sous la forme xml.
kermit796 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 15h24   #4
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Oui tu peux utiliser Simplexml :

1 - Tu dois charger ton fichier XML
$xml = new SimpleXMLElement($xmlstr);

2 - Ajouter les vidéos
$video = $xml->addChild('video');
$video->addChild('title');
$video->addChild('description');
...

3 - Transformer ton objet XML en text pour ensuite l'enregistrer
$xml->asXML()

Regarde API
http://uk3.php.net/manual/fr/simplexml.examples.php
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 16h27   #5
Invité de passage
 
Inscription : mai 2008
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2008
Messages : 6
Points : 1
Points : 1
Merci pour la réponse.
J'avais en effet déjà bien tenté d'étudier cette page avant...
en reprenant les exemples voici ce que j'obtiens :
le xml :
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
 
<movies>
<movie>
<title>PHP: Behind the Parser</title>
<characters>
<character>
<name>Ms. Coder</name>
<actor>Onlivia Actora</actor>
</character>
<character>
<name>Mr. Coder</name>
<actor>El ActÓr</actor>
</character>
</characters>
<plot>
So, this language. It's like, a programming language. Or is it a
scripting language? All is revealed in this thrilling horror spoof
of a documentary.
</plot>
<great-lines>
<line>PHP solves all my web problems</line>
</great-lines>
<rating type="thumbs">7</rating>
<rating type="stars">5</rating>
</movie>
</movies>
le php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
$videos = simplexml_load_file('test.xml');
$character = $videos->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');
$rating = $videos->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');
$videos->formatOutput = TRUE;
echo $videos->asXML();
$videos->saveXML();
?>
Ca va bien chercher les infos, ça ajoute même les nouvelles données à l'écran, mais ça ne s'enregistre pas sur le xml.
kermit796 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 16h44   #6
Invité de passage
 
Inscription : mai 2008
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2008
Messages : 6
Points : 1
Points : 1
J'avais oublié le nom de mon fichier :
Code :
1
2
 
echo $videos->asXML('test.xml');
kermit796 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 17h21   #7
Invité de passage
 
Inscription : mai 2008
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2008
Messages : 6
Points : 1
Points : 1
Allez, cadeau, pour les débutants comme moi, je vous offre le code complet

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
<form method="POST" action="test.php" name="monform">
Nom : <input type="text" name="nom"><br />
Acteur : <input type="text" name="acteur"><br />
<input type="submit" value="Envoyer">
</form>
</body>
</html>
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
28
29
30
 
<?xml version="1.0"?>
<movies>
<movie>
<title>PHP: Behind the Parser</title>
<characters>
<character>
<name>Ms. Coder</name>
<actor>Onlivia Actora</actor>
</character>
<character>
<name>Mr. Coder</name>
<actor>El Act&#xD3;r</actor>
</character>
<character>
<name>Mr. Parser</name>
<actor>John Doe</actor>
</character>
<plot>
So, this language. It's like, a programming language. Or is it a
scripting language? All is revealed in this thrilling horror spoof
of a documentary.
</plot>
<great-lines>
<line>PHP solves all my web problems</line>
</great-lines>
<rating type="thumbs">7</rating>
<rating type="stars">5</rating>
<rating type="mpaa">PG</rating><rating type="mpaa">PG</rating></movie>
</movies>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?php
$formNom = $_POST['nom'];
$formacteur = $_POST['acteur'];
if(!empty($formPrenom) && !empty($formNom) ){
$videos = simplexml_load_file('test.xml');
$character = $videos->movie[0]->characters->addChild('character');
$character->addChild('name', $formNom);
$character->addChild('actor', $formacteur);
$videos->formatOutput = TRUE;
echo $videos->asXML('test.xml');
$videos->saveXML();
}
else{
echo 'merci de remplir les champs nom, acteur';
}
?>
Heuu.. Par contre, cette ligne ne sert à rien ?
Ca fonction avec DOM n'est-ce pas ?
$videos->formatOutput = TRUE;
Comment mettre en forme.
kermit796 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 18h51   #8
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Comment arrivez-vous à utiliser des propriétés et méthodes issues de l'extension DOM avec SimpleXML (sans réaliser le passage de l'un à l'autre, j'entends, puisque chacune d'elles prévoit une telle fonction) ?

Je pense surtout à :
Et :
Code :
$videos->formatOutput = TRUE;
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2008, 09h17   #9
Invité de passage
 
Inscription : mai 2008
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2008
Messages : 6
Points : 1
Points : 1
En effet, ces deux lignes ne servent à rien (cf mon dernier message).
Je n'ai pas trouvé l'équivalent en simpleXML...
kermit796 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2008, 11h31   #10
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Les options de formatage n'existe pas, du moins à ma connaissance, au niveau de l'extension SimpleXML.

Et l'équivalent de la méthode saveXML est asXML mais sans paramètre.
Code :
1
2
3
4
5
$videos->asXML('test.xml'); // Ecriture dans un fichier
 
// ou
 
echo $videos->asXML(); // Affichage à l'écran (il faudra alors indiquer au navigateur les entêtes adéquates ou alors utiliser des fonctions comme htmlentities pour réellement voir le document)
julp 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 17h14.


 
 
 
 
Partenaires

Hébergement Web