1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
--TEST--
Interoperability with SimpleXML
--EXTENSIONS--
dom
simplexml
--FILE--
<?php
$sxe = simplexml_load_string('<container xmlns="urn:a">foo</container>');
$element = Dom\import_simplexml($sxe);
var_dump($element->attributes);
echo $element->ownerDocument->saveXml($element), "\n";
$element->appendChild($element->ownerDocument->createElementNS('urn:a', 'child'));
echo $element->ownerDocument->saveXml($element), "\n";
$sxe->addChild('name', 'value');
echo $element->ownerDocument->saveXml($element), "\n";
// This should fail because it has been imported already above in modern DOM
try {
dom_import_simplexml($sxe);
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
// Import again and compare
var_dump(Dom\import_simplexml($sxe) === $element);
?>
--EXPECT--
object(Dom\NamedNodeMap)#3 (1) {
["length"]=>
int(1)
}
<container xmlns="urn:a">foo</container>
<container xmlns="urn:a">foo<child/></container>
<container xmlns="urn:a">foo<child/><name>value</name></container>
dom_import_simplexml(): Argument #1 ($node) must not be already imported as a Dom\Node
bool(true)
|