|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-02-13 10:43 UTC] jtate at mi-corporation dot NOSPAM dot com
[2002-02-13 11:03 UTC] rrichards at digarc dot com
[2002-02-21 11:06 UTC] jtate@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 08 07:00:02 2025 UTC |
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>"; ?>