Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DomNode->append_child

Оглавление

DomNode->append_child

(unknown)

DomNode->append_child - добавляет нового потомка/child в конец списка потомков.

Описание

object DomNode->append_child (object newnode)

Эта функция присоединяет потомка к списку потомков или создаёт новый список. Потомок может  быть создан, например, функцией DomDocument_create_element(), DomDocument_create_text() etc. или просто путём использования другого узла.

Перед присоединением потомок сначала дублируется. Следовательно, новый потомок является совершенно новой копией, которая может изменяться без влияния на узел, который был передан этой функции. Если передаваемый узел сам имеет потомков, они также продублируются, что позволяет довольно легко дублировать большие части xml-документа.
return-значение это присоединённый потомок. Если вы планируете в дальнейшем модифицировать присоединённый потомок, вы обязаны использовать возвращаемый узел.

В следующем примере узел нового элемента добавляется в документ, и  атрибут "align" получает значение "left".

Пример 1. Добавление потомка
<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

Этот пример можно также записать так:

Пример 2. Добавление потомка
<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>

Далее идёт более сложный пример. Сначала ищется определённый элемент, затем он вместе с потомками дублируется и прибавляется как родственник/sibling. Наконец, новый атрибут добавляется к одному из потомков нового родственника и весь документ дампируется.

Пример 3. Добавление потомка
<?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>";
?>

Этот пример может быть сделан также с помощью DomNode_insert_before() вместо DomNode_append_child().

См. также DomNode_insert_before().


Оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог