(no version information, might be only in CVS)
DomNode- append_child -- 子ノードの最後に新規に子ノードを追加する
説明
object
DomNode- append_child
( object newnode)
This functions appends a child to an existing list
of children or creates a new list of children. The child can be
created with e.g.
DomDocument_create_element()
,
DomDocument_create_text()
etc. or simply by using any other node.
Before a new child is appended it is first
duplicated. Therefore the new child is a completely new copy
which can be modified without changing the node which was
passed to this function. If the node passed has children
itself, they will be duplicated as well, which makes it quite
easy to duplicate large parts of a xml document. The return
value is the appended child. If you plan to do further
modifications on the appended child you must use the returned
node.
The following example will add a new element node
to a fresh document and sets the attribute "align" to
"left".
例 1Adding a child
?php
$doc = domxml_new_doc("1.0");
$node = $doc- create_element("para");
$newnode = $doc- append_child($node);
$newnode- set_attribute("align", "left");
?
|
|
The above example could also be written as the following:
例 2Adding a child
?php
$doc = domxml_new_doc("1.0");
$node = $doc- create_element("para");
$node- set_attribute("align", "left");
$newnode = $doc- append_child($node);
?
|
|
A more comples example is the one below. It first searches for a
certain element, duplicates it including its children and adds it
as a sibling. Finally a new attribute is added to one of the
children of the new sibling and the whole document is dumped.
例 3Adding 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];
$parent = $element- parent_node();
$newnode = $parent- append_child($element);
$children = $newnode- children();
$attr = $children[1]- set_attribute("align", "left");
echo " PRE ";
$xmlfile = $dom- dump_mem();
echo htmlentities($xmlfile);
echo " /PRE ";
?
|
|
The above example could also be done with
DomNode_insert_before()
instead of
DomNode_append_child()
.
See also
DomNode_insert_before()
.