Bug #15530 Updated: conent of node not correctly reading new DOM value after set_content of node

From: Date: Tue, 12 Feb 2002 21:27:48 +0000
Subject: Bug #15530 Updated: conent of node not correctly reading new DOM value after set_content of node
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-211@lists.php.net to get a copy of this message
 ID:               15530
 Updated by:       rrichards@digarc.com
-Summary:          conent of node node correct reading new DOM value
                   after set_content of node
 Reported By:      rrichards@digarc.com
 Status:           Open
 Bug Type:         DOM XML related
 Operating System: RedHat 7.2
 PHP Version:      4.1.1


Previous Comments:
------------------------------------------------------------------------

[2002-02-12 16:18:23] rrichards@digarc.com

The following simplied script shows that when we update the value of a
node, the DOM is updated as shown through the dump.  When you try to
read the content of the node however, it returns the origional value. 


If this is a bug, is there any known workaround to get the desired
result?

Also, we had to use the set_content as provided in the script because
if a node already has a value and we try to call set_content directly
on the node rather than on the the text element (value node), it
appends the data to the node rather than overwriting the exisitng
value.

XPath is used in here as our real XML data is quite complex so needed
to illustrate how we were finding the correct node.

<?
$xmltest = "<root_node><node1>ORG VALUE</node1></root_node>";
$mydoc = xmldoc($xmltest);
echo "<pre>".$mydoc->dumpmem()."</pre><br>";
$ctx=$mydoc->xpath_new_context();
$query_xo = xpath_eval($ctx,"/root_node/node1");
$oNode = $query_xo->nodeset[0];
if (is_null($oNode)) {
	$root = $$mydoc->root();
	$root->new_child("node1", "empty");
} else {
	$tNode = $oNode->first_child();
	$tNode->set_content("VALUE1");
}
echo "<pre>".$mydoc->dumpmem()."</pre><br>";
$ctx2=$mydoc->xpath_new_context();
$query_xo = xpath_eval($ctx2,"/root_node/node1");
$oNode = $query_xo->nodeset[0];
if (! is_null($oNode)) {
	$tNode = $oNode->first_child();
	$strValue = $tNode->content;
}
echo "<br>GET VAL".$strValue."<br>";
echo "<pre>".$mydoc->dumpmem()."</pre>";
?>


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=15530&edit=1



Thread (6 messages)

« previous php.bugs (#211) next »