[[xml]]
 

Oscar_Xml

Je trouve la gestion des fichiers xml assez lourde , trés puissante , mais lourde . Oscar permet donc de simplifier au maximum l'utilisation des fichiers XML.

Pour le moment Oscar offre des méthodes qui simplifient l'usage standard . Pour des fonctionnalités avancées , il faudra attendre , ou créer sa propre classe qui héritera de Oscar_Xml.

Mise en place

Comme d'habitude ,

require_once 'oscar/Oscar_Xml.php';
 
$xml	=	new Oscar_Xml($version='1.0',$encodage='UTF-8');

Par défaut la version est 1.0 et l'encodage UTF-8 mais vous pouvez le modifier via le constructeur.

Ici , ce n'est pas un singleton , vous pouvez donc charger plusieurs documents xml en même temps .

Création d'un nouveau document

Pour créer un nouveau document , nous allons faire appel à la méthode suivante :

$xml->createXml(<directory>=null , <root node>='root');

Vous devrez donc spécifier ou enregistrer votre document xml , et le nom de la balise 'racine'.

Ces deux paramétres sont facultatifs , à condition d'avoir au moins défini le <directory> auparavant, via la méthode :

$xml->set_FileXml(<directory>);

note: le directory doit contenir le chemin vers le fichier xml , mais aussi le nom de ce fichier , exemple :

/var/www/monsite/ficher.xml

chargement d'un document

Pour travailler sur un document existant , nous allons appeler la méthode suivante :

$xml->loadDocument(<directory>=null);

Ainsi , votre document est prêt à être utilisé , encore une fois , le paramétre <directory> est facultatif , à partir du moment ou il a été spécifié via set_FileXml(<directory>);

Retrouver une valeur ou un attribut

Pour retrouver un noeud , sa valeur , et son attribut , on utilisera la méthode suivante :

array = $xml->searchElem(<noeud à trouver>,<attribut du noeud à trouver>);

Cette méthode retourne un tableau associatif , avec tous les nœuds correspondant au nom spécifié en paramètre. Le tableau associatif sera de la forme suivante :

$result = array(
    array("value"=><valeur du noeud>, "attribut"=><valeur de l'atribut demandé>),
    array("value"=><valeur du noeud>, "attribut"=><valeur de l'atribut demandé>),
    ...
);  

Vous avez aussi la possibilité de retourner votre fichier xml sous forme de chaîne de caractères , comme ceci :

$XMLString = $xml->loadString();

Ajouter un noeud

Pour ajouter un noeud , rien de plus simple

$xml->addElem(<nom nouveau noeud>,<valeur nouveau noeud>,<noeud parent>=<à la racine>,<nom de l'attribut>,<valeur de l'attribut>);

Voilà , les paramétres parlent d'eux même , seul le nom du nouveau noeud est obligatoire , le noeud parent est par defaut le noeud racine du document.

note: il faut savoir que tant que vous n'avez pas sauvegardé votre document , ce nouveau noeud ou paramètre , n'est pas écrit dans le fichier xml.

Modifier un noeud

Pas besoin de le supprimer et de le recréer , nous pouvons simplement le mettre à jour comme ceci :

$xml->updateelem(<nom du noeud à modifier>,<nouvelle valeur>=null,<noeud parent>=noeud racine,<attribut>=null,<val de l'attribut>=null);

Simple non ?

Note : attention tout de même , les anciens attributs seront supprimé .. pensez à les récupérer avant si vous souhaitez les garder.

Supprimer un noeud

Pour supprimer un noeud , voici la méthode :

$xml->delElem(<noeud à supprimer>,<noeud parent>=à la racine);

Vous devez donc spécifier le nom du noeud à supprimer , et en option , le nom du noeud auquel il appartient ( noeud parent ) qui par defaut est le noeud racine du document xml.

Si l'un des noeuds parent/à supprimer n'est pas trouvé , la suppression est annulé .

Ajouter un attribut

Il peut être intéressant d'ajouter un attribut sur un noeud existant voici le code

$xml->addAttribut( <nom de l'attribut>, <valeur de l'attribut>=null, <le noeud auquel il appartient>, <le noeud parent>=null );

Encore une fois , les paramétres sont logiques , on commence par définir le nom de l'attribut à ajouter , puis sa valeur. Enfin ,nous précisons le noeud auquel notre attribut appartient , ainsi que sont noeud parent ( s'il n'est pas précisé , le noeud parent sera la racine du document ).

Note: si le noeud n'existe pas , il ne se passe simplement rien …

Modifier un attribut

Pour modifier un attribut , les paramétres seront exactement les même qu'à l'ajout ..

$xml->updateAttribut( <nom de l'attribut>, <valeur de l'attribut>=null, <le noeud auquel il appartient>, <le noeud parent>=null );

Supprimer un attribut

Nous allons finalement voir comment supprimer un attribut :

$xml->deleteAttribut(<nom de l'attribut à supprimer>, <nom du noeud auquel il appartient>, <nom du noeud parent>);

Enregistrer le fichier

L'enregistrement , permet de prendre réellement en compte vos modifications sur le fichier xml , pour l'enregistrer , on utilisera la méthode suivante :

$xml->saveFile(<directory>=null);

Encore une fois , directory n'est pas obligatoire à partir du moment ou il a été spécifié dans une des méthodes précédentes.

xml.txt · Dernière modification: 2012/02/27 07:57 (modification externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki