Lire/Ecrire dans un fichier XML avec PHP
Article posté le 12-11-2012 dans la catégorie
PHP
Article mis à jour le : 05-05-2022
Comment lire et écrire dans un fichier XML avec phpNotre cas de figure :
Le fichier xml sur lequel nous travaillons contient des enregistrements de joueurs. Chaque joueurs a 3 attributs : une position, une bombe, et la position de cette bombe.
Nous utiliserons la blibliothèque SimpleXML
1- Lire le fichier
Lire le fichier se fait en deux étapes : le définir (recommandé en cas de fichier qui n'est pas tout le temps le même), puis l'ouvrir avec simplexml.
Soit le fichier XML suivant :
<?xml version="1.0" encoding="UTF-8"?>
<Meta>
<Page TestUri="books/">
<Title>List all books</Title>
<Description>The whole list of my books collection</Description>
<Keywords>books, list, collection</Keywords>
<Index>1</Index>
</Page>
<Page TestUri="books/add/">
<Title>Add a book</Title>
<Description>The whole list of my books collection</Description>
<Keywords>books, list, collection</Keywords>
<Index>1</Index>
</Page>
</Meta>
Et voici une classe qui permet d'accéder (pour l'exemple), au titre de deux éléments précis (les deux premiers en l'occurence), mais aussi de lister tous les titres :
<?php
class Modules_readMetas
{
private $file;
public function __construct($Uri)
{
$this->file = __DIR__."/../Meta/Meta.xml";
$xml = @simplexml_load_file($this->file);
if(!$xml)
{
echo "Erreur";
}
else
{
$xml = @simplexml_load_file($this->file);
echo $xml->Page[0]->Title."<br/>";
echo $xml->Page[1]->Title."<br/>";
$children = $xml->children();
foreach ($children as $value)
{
echo $value->Title."<br/>";
}
}
}
}
?>
2- Ecrire dans le fichier
$xml=simplexml_load_file($fichier);
$xml->joueur[0]->position = $_GET['Pos']; // Inscription des propriétés
$xml->joueur[0]->bombe = $_GET['IsBomb'];
$xml->joueur[0]->bombelocation = $_GET['CoordBomb'];
$xml->asXML($fichier);
Voilà pour les opérations basiques.
Cet article vous a plu? Découvrez d'autres articles :