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->insert_before
(No version information available, might be only in CVS)
DomNode->insert_before — Insère un nouveau noeud fils
Description
DomNode->insert_before insère le nouveau noeud fils newnode juste avant le noeud fils refnode . La valeur retournée est la valeur du noeud inséré. Si vous devez faire des modifications sur le fils, vous devez utiliser le noeud retourné.
(PHP >= 4.3 uniquement) Si newnode fait déjà partie du document, il sera d'abord déconnecté de son contexte courant. Si refnode vaut NULL alors newnode sera inséré à la fin de la liste des fils.
domnode_insert_before() est très similaire à domnode_append_child() comme l'exemple ci-dessous le montre : il réalise la même fonction que l'exemple de domnode_append_child().
Exemple #1 Ajouter un noeud fils DOM XML
include("example.inc");
if(!$dom = domxml_open_mem($xmlstr)) {
echo "Erreur durant l'analyse du 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>";
Voir aussi domnode_append_child().
DomNode->insert_before
11-May-2006 08:40
