PHP DOM Добавить новый елемент к существующему узлу

for_i_0

Новичок
PHP DOM Добавить новый елемент к существующему узлу

1.xml файл:
<message>
<user1>Hello World</user1>
</message>

Задача открыть документ стредствами DOM и добавить новый элемент к узлу chat

пробывал так:
$dom = new domDocument();
$dom -> load('1.xml');
$root = $dom -> documentElelement;
$dom -> createElement('user2', 'Hi!');
$dom -> appendChild($root);
$dom -> save('2.xml');

Не работает файл остается не измененным.

Буду благодарен за совет.
 

crocodile2u

http://vbolshov.org.ru
Поясняю тебе твои собственные действия:

// ну тут понятно
$dom = new domDocument();
$dom -> load('1.xml');

// Присвоили переменной рут значение - рутовый элемент нашего документа
$root = $dom -> documentElelement;
// Создали новый элемент - юзер2. Действие немного бессмысленное, так как результат
// никуда не передается и переменой не присваивается
$dom -> createElement('user2', 'Hi!');
// добавили в рутовый узел новый элемент - этот самый узел. Действие, пожалуй, еще
// более бессмысленное, чем предыдущее.
$dom -> appendChild($root);

// ну тут опять понятно
$dom -> save('2.xml');

Совет: немного почитать про ДОМ, это просто необходимо. Есть спецификация, которой пхп-расширение достаточно точно следует, есть дока на само расширение. Пока что у тебя в голове каша, которая мешает тебе что-либо понять.
 

for_i_0

Новичок
спасибо если не сложно что и где почитать? Также пожалуйста поправьте по теме.

-~{}~ 12.02.08 16:56:

мне нужно, что бы в файле было нечто похожее на это:
<message>
<user1>Hello World</user1>
<user2>Hi!</user2>

</message>
 

crocodile2u

http://vbolshov.org.ru
Поправка: видимо, ты хотел написать вместо

------------------
$root = $dom -> documentElelement;
$dom -> createElement('user2', 'Hi!');
$dom -> appendChild($root);
------------------

следующее:

------------------
$dom -> appendChild($dom -> createElement('user2', 'Hi!'));
------------------

Почитать... http://php.net/DOM - дока на расширение ДОМ,

http://www.w3.org/TR/ - всевозможные спецификации (вряд ли, честно, тебе придется их использовать, читай лучше доку на расширение)
 

for_i_0

Новичок
crocodile2u
огромное спасибо. Думаю больше вопросов не будет.

-~{}~ 15.02.08 14:51:

а вот собственно то что мне и нужно было:

$root = $dom -> documentElelement;
$node = $dom -> createElement('user2', 'Hi!');
$root -> appendChild($node);
 
Сверху