Vous êtes ici Codes PHP et MySQL > Classes > Classe XML

 

Classe XML

une classe pour générer des fichiers XML, les explications sont dans le code :
Exemple d'utilisation :
$carnet=new XML('carnet');
$carnet->setHead('');
$contact=new XML('contact');
$contact->addNom('Dupond');
$contact->addPrenom('Jean');
$contact->addTel('0123456789');
$carnet->addNode($contact);
echo $carnet;
 
erwan
Site de l'auteur voir
[3] sources en PHP voir
Code vu 2010 fois
Enregistré le 07 Fév 2010
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Classe XML
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Classe XML                                                */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts561-PHP.htm              */
/* Auteur         : erwan                                                     */
/* Date édition   : 07 Fév 2010                                               */
/* Website auteur : http://www.gallenne.fr                                    */
/*                                                                            */
/******************************************************************************/

class XML{
    private $head;
    private $tree;
    private $key;
    private $value;
    private $attributs;
    //constructeur
    public function __construct($key,$value='',$attributs=array()){
        $this->head='';
        $this->key=strtolower($key);
        $this->value=$value;
        $this->attributs=$attributs;
        $this->tree=array();
    }
    public function setHead($head){
        $this->head=$head;
    }
    //ajout d'un noeud enfant
    public function addNode(XML $node){
        $this->tree[]=$node;
    }
    //ajout d'un attribut;
    public function addAttribut($key,$value){
        $this->attributs[$key]=$value;
    }
    public function __toString(){
        //entete du noeud (utile pour le noeud principal de l'arbre
        $text=$this->head."\n";
        //creation de la balise
        $text.='<'.$this->key;
        //creation des attributs
        foreach($this->attributs as $key=>$value){
            $text.=' '.$key.'="'.$value.'"';
        }
        //creation du corps de la balise
        $text.='>'."\n".$this->value."\n";
        //creation des noeuds enfants
        foreach($this->tree as $node){
            $text.=$node;
        }
        //balise de fermeture
        $text.='</'.$this->key.'>'."\n";
        //supression des lignes vides
        $text=preg_replace('`[\n]{2,}`','\n',$text);
        return $text;
    }
    //methode pour faciliter la creation de noeud enfants 
    // exemple d'appel :
    // $node->addText('test',array('value'=>'valeurDeTest'));
    // permet de creer un noeud enfant :
    //  <text value="valeurDeTest">test</text>
    public function __call($name,$args){
        if(substr($name,0,3)=='add'){
            $key=substr($name,3);
            $value=$args[0];
            if(isset($args[1])){
                $attributs=$args[1];
            }else{
                $attributs=array();
            }
            $xml=new XML($key,$value,$attributs);
            $this->addNode($xml);
        }else{
            return false;
        }
    }
}

?>

 

Fonctions du code

: Crée un tableau - (PHP 4, PHP 5)
: Renvoie une chaîne en minuscules - (PHP 4, PHP 5)
: Rechercher et remplacer par expression rationnelle standard - (PHP 4, PHP 5)
: Retourne un segment de chaîne - (PHP 4, PHP 5)
: Détermine si une variable est affectée - (PHP 4, PHP 5)
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Classes

 
 

PHP

 
 
 
PHP et MySQL Livre PHP

PHP et MySQL
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité