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

Ваш аккаунт

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

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

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

PHP: Запись данных в XML

2.8K
03 августа 2006 года
Unglued
119 / / 15.09.2005
Есть file.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 файле ничего не меняется. Почему?
13
03 августа 2006 года
RussianSpy
3.0K / / 04.07.2006
А в файле и не появится ничего если туда ничего не записывать. Объект DOM сидит в памяти, там ты его меняешь, но в файл-то результат не записываешь.
2.8K
03 августа 2006 года
Unglued
119 / / 15.09.2005
Как же тогда поступить в этом случае?
15
03 августа 2006 года
shaelf
2.7K / / 04.05.2005
Там есть полезный метод, save() зовётся.
2.8K
03 августа 2006 года
Unglued
119 / / 15.09.2005
Можно по подробнее? Применительно к моему примеру?
А то ваще ниче не понятно.
2.8K
04 августа 2006 года
Unglued
119 / / 15.09.2005
Написал
 
Код:
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");


Сервер на это ответил несложным
Fatal error: Call to undefined function: save() in /xxx/xxx/parsXML.php on line xx

Пробовал так же echo $dom->saveXML();
на все один ответ.

Еще мне не понятно, что в некоторых источниках все функции пишутся как createElement() или appendСhild(), однако такая запись у меня не работает. Почему?
13
04 августа 2006 года
RussianSpy
3.0K / / 04.07.2006
Ой беда.... Ну какая же лень... Тебе просто лень ТУПО зайти на сайт и поискать инфу по проблеме...

http://ru.php.net/manual/ru/function.dom-domdocument-save.php
12
04 августа 2006 года
alekciy
3.0K / / 13.12.2005
Точно, лянтяй же ты 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);
?>

Для 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);

?>

"Учите матчасть!" (с)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог