PHP Doku:: Removes child from list of children - function.domnode-remove-child.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzXML-ManipulationDOM-XMLDOM-XML-FunktionenDomNode->remove_child

Ein Service von Reinhard Neidl - Webprogrammierung.

DOM-XML-Funktionen

<<DomNode->previous_sibling

DomNode->replace_child>>

DomNode->remove_child

(PHP 4 >= 4.2.0)

DomNode->remove_child Removes child from list of children

Beschreibung

domtext DomNode->remove_child ( domtext $oldchild )

This functions removes a child from a list of children. If child cannot be removed or is not a child the function will return FALSE. If the child could be removed the functions returns the old child.

Beispiel #1 Removing a child

<?php
include("example.inc");

if (!
$dom domxml_open_mem($xmlstr)) {
  echo 
"Error while parsing the document\n";
  exit;
}

$elements $dom->get_elements_by_tagname("tbody");
$element $elements[0];
$children $element->child_nodes();
$child $element->remove_child($children[0]);

echo 
"<PRE>";
$xmlfile $dom->dump_mem(true);
echo 
htmlentities($xmlfile);
echo 
"</PRE>";
?>

See also domnode_append_child().


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
iloveitaly at gmail.com
5.12.2004 3:28
The remove_child() function seems to have a bug. if the parent node  of the node you are trying to delete is the same as the root node it will give you unexpected errors. I fixed this by checking if the parent node of the node i was deleting was the same as the document node. take a look at the function below if you are running into the same problem. $this->xmlData reffers to the domxml object inside the class i was using.
<?php
   
function deleteNode($ref, $levels) {
       
$parent = $ref->parent_node();
       
$root = $this->xmlData->document_element();
        if(
$parent->node_name()==$root->node_name()) {
           
$parent = $this->xmlData->document_element();
        }
        if(
$parent->remove_child($ref)) {
            return
true;
        } else {
            exit(
"error removing node");
        }
    }
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)