最近写PHP程序操作xml文件,在删除节点时遇到了两个问题,在网上找了一下,还是值得注意一下的,在这里记录下来,以待日后查阅。

     1、PHP删除xml文件中的节点,不能跨节点删除,只能由父节点删除子节点。

     2、循环删除节点时,会出现随机不能删除的问题。解决办法是:把要删除的节点用数组暂存起来,最后再来删除。

         Eg: $xml = <<<EOT <Template>  

              <RCOLL>1</RCOLL>  

              <RCOLL>2</RCOLL>  

              <RCOLL>3</RCOLL>  

              <RCOLL>4</RCOLL>  

              </TEMPLATE>  

               EOT;  

               $objXML = new DOMDocument();

               $objXML->loadXML($xml);  

               $r = $objXML->getElementsByTagName('RColl');  

               foreach($r as $Node) {  

                       $delete[] = $Node;  

              }  

               foreach($delete as $val) {  

                       $val->parentNode->removeChild($val);  

              }