PHP 5.4.31 Released

simplexml_import_dom

(PHP 5)

simplexml_import_domObtiene un objeto SimpleXMLElement de un nodo DOM

Descripción

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

Esta función toma un nodo de un documento DOM y lo convierte en un nodo SimpleXML. Este nuevo objeto puede ser usado como un elemento SimpleXML nativo.

Parámetros

node

Un nodo del elemento DOM

class_name

Este parámetro opcional debe usarse cuando se necesite que simplexml_import_dom() retorne un objeto de la clase indicada. Esa clase debe extender de la clase SimpleXMLElement.

Valores devueltos

Retorna un SimpleXMLElement o FALSE en caso de error.

Ejemplos

Ejemplo #1 Importando desde DOM

<?php
$dom 
= new DOMDocument;
$dom->loadXML('<libros><libro><titulo>blah</titulo></libro></libros>');
if (!
$dom) {
    echo 
'Error analizando el documento';
    exit;
}

$s simplexml_import_dom($dom);

echo 
$s->libro[0]->titulo;
?>

El resultado del ejemplo sería:

blah

Ver también

add a note add a note

User Contributed Notes 1 note

up
0
brandonkirsch at perceptionilluminates dot com
11 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