PHP: Запись данных в XML
[HTML]
<?xml version="1.0" encoding="windows-1251"?>
<cars>
<mark index="alfa-romeo" />
<mark index="nissan" />
<mark index="volkswagen" />
</cars>
[/HTML]
В PHP:
Код:
function add_mark($markVal){
$xml = join("", file("cars.xml"));
$dom = domxml_open_mem($xml);
$root = $dom->document_element();
$new_mark = $dom->create_element("mark");
$new_mark->set_attribute("index", $markVal);
$root->append_child($new_mark);
}
$xml = join("", file("cars.xml"));
$dom = domxml_open_mem($xml);
$root = $dom->document_element();
$new_mark = $dom->create_element("mark");
$new_mark->set_attribute("index", $markVal);
$root->append_child($new_mark);
}
Но в XML файле ничего не меняется. Почему?
А в файле и не появится ничего если туда ничего не записывать. Объект DOM сидит в памяти, там ты его меняешь, но в файл-то результат не записываешь.
Как же тогда поступить в этом случае?
Там есть полезный метод, save() зовётся.
А то ваще ниче не понятно.
Код:
function add_mark($markVal){
$xml = join("", file("cars.xml"));
$dom = domxml_open_mem($xml);
$root = $dom->document_element();
$new_mark = $dom->create_element("mark");
$new_mark->set_attribute("index", $markVal);
$root->append_child($new_mark);
echo $dom->save("cars.xml");
$xml = join("", file("cars.xml"));
$dom = domxml_open_mem($xml);
$root = $dom->document_element();
$new_mark = $dom->create_element("mark");
$new_mark->set_attribute("index", $markVal);
$root->append_child($new_mark);
echo $dom->save("cars.xml");
Сервер на это ответил несложным
Fatal error: Call to undefined function: save() in /xxx/xxx/parsXML.php on line xx
Пробовал так же echo $dom->saveXML();
на все один ответ.
Еще мне не понятно, что в некоторых источниках все функции пишутся как createElement() или appendСhild(), однако такая запись у меня не работает. Почему?
Ой беда.... Ну какая же лень... Тебе просто лень ТУПО зайти на сайт и поискать инфу по проблеме...
хелпе по пыху ленишься рыться.
В PHP V4 были DOM XML функции (глава XXXI. DOM XML Functions), которые в 5-ой версии были заменены на DOM функции (XXX. DOM Functions).
Для 4-ой версии:
Для 5-ой версии:
"Учите матчасть!" (с)
Точно, лянтяй же ты Unglued! Даже в
В PHP V4 были DOM XML функции (глава XXXI. DOM XML Functions), которые в 5-ой версии были заменены на DOM функции (XXX. DOM Functions).
Для 4-ой версии:
Код:
<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>
Для 5-ой версии:
Код:
<?php
$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;
$root = $doc->createElement('book');
$root = $doc->appendChild($root);
$title = $doc->createElement('title');
$title = $root->appendChild($title);
$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);
echo "Saving all the document:\n";
echo $doc->saveXML() . "\n";
echo "Saving only the title part:\n";
echo $doc->saveXML($title);
?>
$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;
$root = $doc->createElement('book');
$root = $doc->appendChild($root);
$title = $doc->createElement('title');
$title = $root->appendChild($title);
$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);
echo "Saving all the document:\n";
echo $doc->saveXML() . "\n";
echo "Saving only the title part:\n";
echo $doc->saveXML($title);
?>
"Учите матчасть!" (с)