Please note that a valid SimpleXMLElement is typecasted to false.
<?php
$string = '<root><foo>abc</foo></root>';
$xml = DOMDocument::loadXML($string);
$xml = simplexml_import_dom($xml);
echo 'simplexml_import_dom';
var_dump($xml);
var_dump((bool)$xml);
$xml = simplexml_load_string('<root><foo>abc</foo></root>');
echo 'simplexml_load_string';
var_dump($xml);
var_dump((bool)$xml);
$xml = simplexml_load_file('test.xml');
echo 'simplexml_load_file';
var_dump($xml);
var_dump((bool)$xml);
?>
Outputs:
--START--
simplexml_import_dom
object(SimpleXMLElement)[2]
public 'foo' => 'abc'
false
simplexml_load_string
object(SimpleXMLElement)[1]
public 'foo' => 'abc'
false
simplexml_load_file
object(SimpleXMLElement)[2]
public 'foo' => 'abc'
false
--END--
simplexml_import_dom
(PHP 5)
simplexml_import_dom — Obtiene 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
- dom_import_simplexml() - Obtiene un objeto DOMElement desde un objeto SimpleXMLElement
- Uso básico de SimpleXML
spam AT media MINUS soma DOT de ¶
6 years ago
peter-SPAMrubbish-ATveridon.com ¶
5 years ago
Something that surprised me, any changes made to the SimpleXML object obtained from the imported DOMDocument also change the original DOMDocument.
e.g.
<?php
$string = '<root><foo>abc</foo></root>';
$domxml = DOMDocument::loadXML($string);
$simplexml = simplexml_import_dom($domxml);
$simplexml->foo = "xyz";
$simplexml->bar = "123";
echo $domxml->saveXML();
?>
Outputs:
--START--
<?xml version="1.0"?>
<root><foo>xyz</foo><bar>123</bar></root>
