justinpatrin at php dot net:
> To get a proper DOM document (which you need to do most things) you need...
No you don't. Just do:
<?php
$dom = dom_import_simplexml($xml)->ownerDocument;
?>
dom_import_simplexml
(PHP 5)
dom_import_simplexml — Transforme un objet SimpleXMLElement en un objet DOMElement
Description
dom_import_simplexml() transforme l'objet SimpleXML node en un objet DOMElement. Le nouvel objet peut être utilisé en tant que noeud natif DOMElement.
Liste de paramètres
- node
-
Le noeud SimpleXMLElement.
Valeurs de retour
Le noeud DOMElement à ajouter ou FALSE si une erreur survient.
Exemples
Exemple #1 Importation d'un objet SimpleXML dans DOM avec dom_import_simplexml()
<?php
$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');
if ($sxe === false) {
echo 'Erreur lors de l\'analyse du document';
exit;
}
$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
echo 'Erreur lors de la convertion du XML';
exit;
}
$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);
echo $dom->saveXML();
?>
dom_import_simplexml
crescentfreshpot at yahoo dot com
13-Dec-2007 04:22
13-Dec-2007 04:22
justinpatrin at php dot net
02-Jun-2006 12:44
02-Jun-2006 12:44
I've found that newer versions of PHP5 require some special syntax in order to properly convert between SimpleXML and DOM. It's not as easy as calling dom_import_simplexml() with a SimpleXML node. To get a proper DOM document (which you need to do most things) you need:
<?php
//$xml is a SimpleXML instance
$domnode = dom_import_simplexml($xml);
$dom = new DOMDocument();
$domnode = $dom->importNode($domnode, true);
$dom->appendChild($domnode);
?>
Switching back, though, is, well...simple.
<?php
//$dom is a DOMDocument instance
$xml = simplexml_import_dom($dom);
?>
