1. 简介
simplexml_import_dom() 函数用来将一个 DOM 节点转换为 SimpleXMLElement 对象,类似于 simplexml_import_simplexml() 函数所做的,但前者使用 DOMDocument 类而后者使用 SimpleXMLElement 类。
2. 语法
simplexml_import_dom ( DOMNode $node [, string $class_name = "SimpleXMLElement" ] ) : SimpleXMLElement
参数说明
node:要转换为 SimpleXMLElement 对象的 DOM 节点。
class_name:可选项,生成的 SimpleXMLElement 对象类名,缺省值为 "SimpleXMLElement"。
3. 示例
3.1 XML 字符串转换
$xmlstr = '<?xml version="1.0" encoding="UTF-8"?><root><test>Hello World!</test></root>';
$dom = new DOMDocument();
$dom->loadXML($xmlstr);
$sxml = simplexml_import_dom($dom);
echo $sxml->test; // 输出:Hello World!
在上面的示例中,将一个 XML 字符串 $xmlstr 转换为 DOM 节点 $dom,然后使用 simplexml_import_dom() 函数将 DOM 节点转换为 SimpleXMLElement 对象 $sxml,最后通过 $sxml 对象输出 XML 中 <test> 标签内的内容。
3.2 从文件中载入 XML
$file = 'test.xml';
$dom = new DOMDocument();
$dom->load($file);
$sxml = simplexml_import_dom($dom);
echo $sxml->test; // 输出:Hello World!
在上面的示例中,将文件 test.xml 载入为 DOM 节点 $dom,然后使用 simplexml_import_dom() 函数将 DOM 节点转换为 SimpleXMLElement 对象 $sxml,最后通过 $sxml 对象输出 XML 中 <test> 标签内的内容。
3.3 使用类名转换
$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0" encoding="UTF-8"?><root><test>Hello World!</test></root>');
$sxml = simplexml_import_dom($dom, 'CustomSimpleXMLElement');
echo get_class($sxml); // 输出:CustomSimpleXMLElement
在上面的示例中,将一个 XML 字符串转换为 DOM 节点 $dom,然后使用 simplexml_import_dom() 函数将 DOM 节点转换为名为 CustomSimpleXMLElement 的 SimpleXMLElement 对象 $sxml,最后通过 get_class() 函数输出 $sxml 的类名。