DOM XML (PHP 4) 函数
在线手册:中文 英文
PHP手册


DOM XML (PHP 4) 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Deletes node

用户评论:

dajohny at gmail dot com (03-Nov-2008 09:00)

<?xml version="1.0"?>
<galleries>
  <gallery title="test" intro="">
    <image/>
    <image/>
  </gallery>
  <gallery title="test1" intro="">
    <image/>
    <image/>
    <image/>
    <image/>
   </gallery>
  <gallery title="test2" intro="">
    <image/>
    <image/>
    <image/>
    <image/>
  </gallery>
</galleries>

<?php
$dom
= domxml_open_file($xmlfilename, DOMXML_LOAD_DONT_KEEP_BLANKS)
$x = $dom->get_elements_by_tagname('youtagname');

for(
$i=0;$i<count($x);$i++)
{
   
// to remove a particular node by finding the
   
if($x[$i]->get_attribute('title')=="test1")
    {
       
$remnode $x[$i]->node_name();
       
$x[$i]->unlink_node($remnode);
       
$dom->dump_file($xmlfilename, false, true);
    }
}

// Final xml will be like this:
?>

<?xml version="1.0"?>
<galleries>
  <gallery title="test" intro="">
    <image/>
    <image/>
  </gallery>
  <gallery title="test2" intro="">
    <image/>
    <image/>
    <image/>
    <image/>
  </gallery>
</galleries>

Njoi :)

starloran at hotmail dot com (01-Oct-2004 02:46)

I tried to use unlink_node to delete a node, but it never worked.
However, you can delete a node with this:

function delNode($node){
                   $nud=$node->parent_node();
                   $nud->remove_child($node);
}

phpnotes AT no Spam dot phillfox.net (22-Nov-2002 10:07)

Just like dump_node*, this method requres the node as an argument.
Like this:
      $removeThis = $dom->get_element_by_id ('26');
      $unlinked = $removeThis->unlink_node($removeThis);

In the example above, $unlinked seems to be NULL.

I'm using 4.3.0-dev (build: Nov 14 2002 10:13:12) in Module mode on Apache/1.3.24 - Win2000.

* see: http://www.php.net/manual/en/function.domnode-dump-node.php