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 17/12/2007, 15h52   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 2
Points : 1
Points : 1
Par défaut [DOM] création de fichier XML avec PHP

Bonjour,

J'essaie d'écrire du xml avec php5. Vu que je débute, j'ai commencé par copier des scripts que j'ai trouvé sur le net pour vérifier qu'ils marchaient. Mais ça n'est pas le cas.

Quand j'essaie ce script :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

$element = $dom->createElement('test', 'Ceci est l\'élément racine !');

// Nous insérons le nouvel élément en tant que racine (enfant du document)
$dom->appendChild($element);

echo $dom->saveXML();
?>
source : http://fr.php.net/manual/fr/function...ateelement.php

Ca me renvoie :
Citation:
Warning: DOMDocument::saveXML() [function.DOMDocument-saveXML]: output conversion failed due to conv error, bytes 0xE9 0x6C 0xE9 0x6D in E:\www\xml.php on line 10
Ceci est l'
Quand j'essaie celui-ci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

$doc = new DOMDocument('1.0');
// nous voulons un joli affichage
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('Ceci est le titre');
$text = $title->appendChild($text);

echo 'Ecrit : ' . $doc->save("/tmp/test.xml") . ' octets'; // Ecrit : 72 octets

?>
source : http://fr.php.net/manual/fr/function...ument-save.php

Ca me renvoie :
Citation:
Warning: DOMDocument::save(/tmp/test.xml) [function.DOMDocument-save]: failed to open stream: No such file or directory in E:\www\xml.php on line 16
Ecrit : octets
Et ça écrit un fichier test.xml de 0 octet

J'ai mis les lignes concernées dans les script en fushia.

J'ai fait mes test sous WAMP5 et sur mon hébergement chez OVH après l'avoir basculé en php5. Dans les 2 cas, je vois bien avec un phpinfo que le module dom est bien chargé et que le module domxml (php4 si j'ai bien compris) ne l'est pas.

Quel est mon problème ? Qu'est-ce que je peux faire ?
fleuveblanc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 16h37   #2
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
Pour le premier exemple, il faudrait encoder vos données en UTF-8 (jeu utilisé par défaut en interne) :
Code :
$element = $dom->createElement('test', utf8_encode('Ceci est l\'élément racine !'));
Pour le deuxième vous utilisez un chemin (/tmp/test.xml) qui n'est pas valable sur une plate-forme windows. Adaptez-le / changez-le.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 17h36   #3
Invité de passage
 
Inscription : décembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 2
Points : 1
Points : 1
Super ! et merci beaucoup !

Ce qu'il y a de bien quand on est débutant, c'est la rapidité des réponses aux questions qui nous semblent insurmontables. Ca va bien me faire avancer.

PS : j'ai essayé de mettre une balise résolu, mais ça ne ressemble pas à celle des autres sujets. J'imagine que je n'ai pas le statut pour le faire correctement. Si je me trompe, il ne faut hésiter à me le dire pour que je corrige.
fleuveblanc 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 13h31.


 
 
 
 
Partenaires

Hébergement Web