PHP Unconference Europe 2015

simplexml_import_dom

(PHP 5)

simplexml_import_domRecebe um objeto SimpleXMLElement de um nó DOM.

Descrição

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

Esta função recebe um nó de um documento DOM e o transforma em um nó SimpleXML. O novo objeto pode ser utilizado como um elemento SimpleXML nativo.

Parâmetros

node

Um nó DOM

class_name

Você pode utilizar o parâmetro opcional simplexml_import_dom() para retornar um objeto da classe especificada. Esta classe deve extender a classe SimpleXMLElement.

Valor Retornado

Retorna um SimpleXMLElement ou FALSE em caso de falha.

Exemplos

Exemplo #1 Importing DOM

<?php
$dom 
= new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!
$dom) {
    echo 
'Error while parsing the document';
    exit;
}

$s simplexml_import_dom($dom);

echo 
$s->book[0]->title// blah
?>

Veja Também

add a note add a note

User Contributed Notes 1 note

up
-1
brandonkirsch at perceptionilluminates dot com
1 year 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