|
Forum |
|
Réagissez
dans les
forums de JDN Développeurs
|
Interopérabilité avec l'extension
DOM
PHP possède un mécanisme pour convertir les noeuds XML entre
les extensions SimpleXML et DOM. Voici un exemple pour transformer
un élément DOM en élément SimpleXML.
<?php
$dom = new domDocument();
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'Erreur de traitement XML';
exit;
}
$s = simplexml_import_dom($dom);
echo $s->book[0]->title;
?>
L'ajout
et la suppression de balises est possible avec DOM, et vous
permettra de contourner cette limitation de SimpleXML. Voici
un exemple d'ajout de balise à un fichier XML :
<?php
$dom = new domDocument();
$dom->loadXML('<books><book><title>blah </title></book></books>');
if (!$dom) {
echo 'Erreur de traitement XML';
exit;
}
$liste = $dom->getElementsByTagName('books');
$noeud = $liste->item(0);
$title = $dom->createElement("titre","boo");
$node = $dom->createElement("book");
$node->appendchild($title);
$noeud->appendChild($node);
$s = simplexml_import_dom($dom);
echo $s->asxml();
?>
Notez bien que vous pouvez aussi passer de SimpleXML vers
DOM, avec une fonction similaire :
<?php
$s = simplexml_load_string( '<books><book><title>blah</title></book></books>');
if(!$s) {
echo "Erreur de traitement du document XML \n";
exit;
}
$dom = dom_import_simplexml($s);
print $dom->ownerDocument->saveXML();
?>