#36756 [Opn->Bgs]: DOMDocument::removeChild corrupts node
| From: | tony2001@php.net | Date: | Thu, 16 Mar 2006 10:20:58 +0000 |
| Subject: | #36756 [Opn->Bgs]: DOMDocument::removeChild corrupts node | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-94417@lists.php.net to get a copy of this message | ||
ID: 36756
Updated by: tony2001@php.net
Reported By: olaf at 7val dot com
-Status: Open
+Status: Bogus
-Bug Type: Scripting Engine problem
+Bug Type: DOM XML related
Operating System: Linux
PHP Version: 5.1.2
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
Previous Comments:
------------------------------------------------------------------------
[2006-03-16 09:47:53] olaf at 7val dot com
Description:
------------
Using DOMDocument::removeChild corrupts node in the document in some
cases.
Given a node $node and removing a parent node of this node renders
$node unusable (properties are gone, but $node is still of class
DOMElement).
Reproduce code:
---------------
<?php
// This works as expected
$dom = DOMDocument::loadXML('<root><child/></root>');
$xpath = new DOMXpath($dom);
$node = $xpath->query('/root')->item(0);
echo $node->nodeName . "\n";
$dom->removeChild($GLOBALS['dom']->firstChild);
echo "nodeType: " . $node->nodeType . "\n";
echo "nodeName: " .$node->nodeName . "\n";
echo "parentNode: " .$node->parentNode . "\n";
// This breaks "$node"
$dom = DOMDocument::loadXML('<root><child/></root>');
$xpath = new DOMXpath($dom);
$node = $xpath->query('//child')->item(0);
echo $node->nodeName . "\n";
$GLOBALS['dom']->removeChild($GLOBALS['dom']->firstChild);
echo "nodeType: " . $node->nodeType . "\n";
echo "nodeName: " .$node->nodeName . "\n";
echo "parentNode: " .$node->parentNode . "\n";
echo "\n";
?>
Expected result:
----------------
Properties of $node should still exists, see part1:
root
nodeType: 1
nodeName: root
parentNode:
Actual result:
--------------
Properties are gone
child
Notice: Undefined property: DOMElement::$nodeType in
/home/olaf/test/test.php on line 20
nodeType:
Notice: Undefined property: DOMElement::$nodeName in
/home/olaf/test/test.php on line 21
nodeName:
Notice: Undefined property: DOMElement::$parentNode in
/home/olaf/test/test.php on line 22
parentNode:
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=36756&edit=1