Comment générer un fichier xml dans php

Fermé
nacer183 Messages postés 20 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 4 avril 2007 - 27 mars 2007 à 15:28
 Warmann - 29 août 2007 à 12:33
bonjour, je teste le code il ne marche pas avec wamp (php5,MySQL5,apache2)est-ce-qu'il y a des modification dans php pour qu'il marche? je besoin d'une réponse dans le plus courte durée,merci
<?php
// Classe pour créer un fichier xml
class creer_xml
{
var $nomdufichier; //Nom du fichier à créer
private $contenu; //Buffer
private $arborescence; //Arborescence instantanée xml

//Constructeur PHP5
function __construct( $nomdufichier,$balise_principale,$encoding="ISO-8859-2" )
{
//$balise_principale est la balise qui englobe les autres
//$encoding est l'encodage. J'ai choisi par défaut ISO-8859-2, c'est moins chiant que UTF8
$this->nomdufichier = $nomdufichier ;
$this->contenu = '<?xml version="1.0" encoding="'.$encoding.'"?>' ;
$this->contenu .= $this->entrer($balise_principale) ;
}

/*//Pour une utilisation en PHP4:
//Constructeur PHP4
function creer_xml( $nomdufichier,$balise_principale,$encoding="ISO-8859-2" )
{
$this->__construct( $nomdufichier,$balise_principale,$encoding );
}
//Penser à remplacer les private en var... ca devrait marcher
*/

//Crée un noeud ouvert (qui contiendra d'autres noeuds)
function entrer( $champs )
{
//Ajoute le champs actuel dans l'arborescence instantanée
$this->arborescence[] = $champs;
//Ecrit le noeud
$this->contenu .= '<'.$champs.'>';
}

//Ferme le noeud ouvert courrant (ou tous si $quitter = TRUE)
function sortir($quitter=FALSE)
{
//Si on essaie de fermer le dernier noeud sans le vouloir, on affiche un message d'erreur
if (!$quitter AND count($this->arborescence)==1)
die('Sortie de boucle impossible...');
//On enlève l'élément du tableau le plus bas et on le récupère dans $champs
$champs = array_pop($this->arborescence);
//On ferme le noeud en question
$this->contenu .= '</'.$champs.'>';
//Si on veut tout fermer, petite récursivité pour fermer tous les noeud
if ($quitter AND count($this->arborescence)>0)
$this->sortir(TRUE);
}

//Crée un noeud en ligne (ex: <noeud>valeur</noeud>)
function ligne( $champs,$valeur )
{
$valeur = str_replace('<','<',$valeur);
$valeur = str_replace('&','&',$valeur);
//Ecriture dans le buffer du noeud
$this->contenu .= '<'.$champs.'>'.$valeur.'</'.$champs.'>';
}

//Ajoute un commentaire
function commentaire( $contenu )
{
//Ecriture dans le buffer du commentaire
$this->contenu .= '<!-- '.$contenu.' -->';
}

//Copie du buffer dans le fichier demandé
function creerlefichier()
{
//On sort de tous les noeuds ouverts
$this->sortir(TRUE);
//Ouverture du fichier
$fichier = fopen($this->nomdufichier,'w+') ;
//Ecriture du contenu du buffer
$rep = fwrite($fichier,$this->contenu) ;
//Fermeture du fichier
fclose($fichier) ;
//Retour de la réponse, pour pouvoir verifier les erreurs
return $rep ;
}
}
?>

/********************************************************/
/* UTILISATION: */
/********************************************************/
include('classe_xml.php');
$xml = new creer_xml('test.xml','soirée');
$xml->commentaire('Liste des membres de l\'association');
$xml->entrer('membres');
$xml->entrer('Jean');
$xml->ligne('Age','32');
$xml->ligne('Ville','Lyon');
$xml->sortir();
$xml->entrer('Jeanne');
$xml->ligne('Age','37');
$xml->ligne('Ville','Toulouse');
$xml->sortir();
$xml->sortir();
$xml->commentaire('Liste des gens invités par l\'association');
$xml->entrer('invites');
$xml->entrer('Joe');
$xml->ligne('Age','28');
$xml->ligne('Ville','Marseille');
//Les 2 lignes commentées ne sont pas nécessaires, sauf peut-etre pour la comprehension
/* $xml->sortir();
$xml->sortir();*/
$xml->creerlefichier();

/* LE FICHIER CREE RESSEMBLERA ALORS ETRANGEMENT A:
<?xml version="1.0" encoding="ISO-8859-2" ?>
<soirée>
<!-- Liste des membres de l'association -->
<membres>
<Jean>
<Age>32</Age>
<Ville>Lyon</Ville>
</Jean>
<Jeanne>
<Age>37</Age>
<Ville>Toulouse</Ville>
</Jeanne>
</membres>
<!-- Liste des gens invités par l'association -->
<invites>
<Joe>
<Age>28</Age>
<Ville>Marseille</Ville>
</Joe>
</invites>
</soirée>
*/
A voir également:

1 réponse

Déja moi je trouve sa :

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in h:\easyphp1-8\www\test-message\test.php on line 6
Alor je pence que le fait qu'il marche pas soi normal !
(ps: Dsl j'ai pas regarder exactement ce qui ne va pas.)
0