Добавление новых элементов в XML-документ
Вначале скопируем описание студента с помощью метода DomNode->clone_node(). Таким образом клонируется элемент <student> и все его внутренние элементы, при этом содержание тегов не копируется.
Далее необходимо установить какие-нибудь значения для элементов описания студента. В конце нужно записать полученное описание студента в качестве потомка корневого элемента в дерево DOM с помощью метода DomNode->append_child(new_node), где в качестве параметра передается созданный объект (новый узел).
Для удаления узла можно воспользоваться методом DomNode->unlink_node(), применив его к узлу, который требуется удалить..
// который содержит описание студента
$elements = $dom->get_elements_by_tagname("student");
$element = $elements[0];
//вычисляем родителя и потомков
$parent = $element->parent_node();
$children = $element->child_nodes();
// клонируем элемент student
$student = $element->clone_node();
// устанавливаем идентификатор
$attr = $student->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 = $student->append_child($node);
}
$newnode = $parent->append_child($student);
echo "<PRE>";
$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);
echo "</PRE>";
// запишем полученный XML-файл в файл "test.xml"
$h = fopen("test.xml","a");
if (!fwrite($h, $xmlfile)) {
print "Cannot write " . "to file ($filename)";
exit;
}
}
Дата добавления: 2015-08-26; просмотров: 720;