downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

DomNode->is_blank_node> <DomNode->has_child_nodes
Last updated: Fri, 20 Nov 2009

view this page in

DomNode->insert_before

(PHP 4 >= 4.1.0)

DomNode->insert_before Inserts new node as child

Description

domelement DomNode->insert_before ( domelement $newnode , domelement $refnode )

This function inserts the new node newnode right before the node refnode . The return value is the inserted node. If you plan to do further modifications on the appended child you must use the returned node.

(PHP >= 4.3 only) If newnode already is part of a document, it will be first unlinked from its existing context. If refnode is NULL, then newnode will be inserted at the end of the list of children.

domnode_insert_before() is very similar to domnode_append_child() as the following example shows which does the same as the example at domnode_append_child().

Example #1 Adding 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("informaltable");
print_r($elements);
$element $elements[0];

$newnode $element->insert_before($element$element);
$children $newnode->children();
$attr $children[1]->set_attribute("align""left");

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

See also domnode_append_child().



add a note add a note User Contributed Notes
DomNode->insert_before
captainbajoo at juno dot com
11-May-2006 06:40
In a numbered ordering of the document's nodes, insertBefore() will place newNode at the index held by refNode, and increment refNode's index and all subsequent nodes' indices. This is instead of maintaining refNode's index, placing newNode at refNode's position minus one, and shifting all previous nodes' indices down by one.

The base case of refNode.index = 0 demonstrates why this must be the case, but it is good to know this explicitly, as it affects methods that deal with iteration such as getElementsByTagName().

DomNode->is_blank_node> <DomNode->has_child_nodes
Last updated: Fri, 20 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites