Язык программирования PHP

         

Пример 14.5


// Для того чтобы добавить описание

// новой личности, нужно знать,

// как описывается каждая личность.

// Выбираем элемент person,

// который содержит описание личности

$elements = $dom->get_elements_by_tagname("person");

$element = $elements[0];

//вычисляем родителя и потомков

$parent = $element->parent_node();

$children = $element->child_nodes();

// клонируем элемент person

$person = $element->clone_node();

// устанавливаем новой

// личности идентификатор

$attr = $person->set_attribute("id", "30");

// если у личности были потомки,

// то их тоже надо клонировать

foreach ($children as $child){

//клонируем ребенка

$node = $child->clone_node();

//получаем массив внуков

$grand_children = $child->child_nodes();

// если ребенок имеет потомков,

//т.е. массив внуков не пуст, то

if (count($grand_children)<>1){

//клонируем каждого внука

//и присоединяем к уже

//клонированному ребенку

foreach($grand_children as $grand_child){

$lastnode = $grand_child->clone_node();

//записываем в нужные теги

//подходящие значения

if ($grand_child->tagname=="first")

$cont = $lastnode->set_content("Nina");

if ($grand_child->tagname=="last")

$cont = $lastnode->set_content("Saveljeva");

if ($grand_child->tagname=="day")

$cont = $lastnode->set_content("7");

if ($grand_child->tagname=="month")

$cont = $lastnode->set_content("06");

if ($grand_child->tagname=="year")

$cont = $lastnode->set_content("1981");

$newlastnode = $node->append_child($lastnode);

}

}

if ($child->tagname=="email") {

$cont = $node->set_content("help@intuit.ru");

}

$newnode2 = $person->append_child($node);

}

$newnode = $parent->append_child($person);

//dump_mem создает XML-документ из dom

//представления

echo "";

$xmlfile = $dom->dump_mem(true);

// посмотрим в браузере,

// что получилось

echo htmlentities($xmlfile);

echo "";

// запишем полученный XML-файл

// в файл "test.xml"

$h = fopen("test.xml","a");

if (!fwrite($h, $xmlfile)) {

print "Cannot write " . "to file ($filename)";

exit;

}

}




Содержание  Назад  Вперед






Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий