simplexml_import_dom

(PHP 5)

simplexml_import_domConstruit un objet SimpleXMLElement à partir d'un objet DOM

Description

SimpleXMLElement simplexml_import_dom ( DOMNode $node [, string $class_name = "SimpleXMLElement" ] )

simplexml_import_dom() prend un noeud d'un document DOM et la transforme en noeud SimpleXML. Ce nouvel objet peut alors être utilisé comme un objet natif SimpleXML.

Liste de paramètres

node

Un élément DOM

class_name

Vous pouvez utiliser ce paramètre optionnel afin que simplexml_load_string() retourne un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

Valeurs de retour

Retourne un objet SimpleXMLElement ou FALSE si une erreur survient.

Exemples

Exemple #1 Import DOM

<?php
$dom 
= new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!
$dom) {
    echo 
'Erreur durant l'analyse du document';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

L'exemple ci-dessus va afficher :

blah

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
0
brandonkirsch at perceptionilluminates dot com
8 months ago
simplexml_import_dom() will accept DOMNodes or other SimpleXMLElements.  This has a useful purpose if you are extending the SimpleXMLElement class and would prefer the xpath() method to return your class extension instead of basic SimpleXMLElements.  For example:

class MySimpleXML extends SimpleXMLElement{
    public function xpath($xpath){
        $return = array();
        $simpleXmls = parent::xpath($xpath); // run SimpleXMLElement xpath, returning an array of SimpleXMLElements
        foreach($simpleXmls as $xml){
            $return[] = simplexml_import_dom($xml,'MySimpleXML'); // copy SimpleXMLElement, returning as MySimpleXML instance
        }
        return $return;
    }
}

Now I can create an instance of MySimpleXML, run an xpath, and get my results back as an array of MySimpleXML elements instead of the native SimpleXMLElement:

$mySimpleXml = new mySimpleXml('<root><node/></root>');

$array = $mySimpleXml->xpath('/root/node'); // returns array with a single MySimpleXml object
To Top