Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.08.2010, 10:45
Кандидат Javascript-наук
Отправить личное сообщение для bayah Посмотреть профиль Найти все сообщения от bayah
 
Регистрация: 22.04.2010
Сообщений: 111

Как добавить элемент в XML через DOM используя PHP?
Собственно вопрос.
Есть такой xml файл:
Код:
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="xmltest.css"?>
<root>
	<message number='1' date='05-08-2010' time='11:20' nick='bayah'>
		Message1
	</message>
	<message number='2' date='06-08-2010' time='00:00' nick='zend'>
		Message2
	</message>
</root>
Как видите, это нечто вроде сообщений на форуме.
Мне необходимо через php добавить новый элемент message, например.
Я работаю через php5, там функции, наконец-то, стали соответствовать стандарту. То есть теперь работа с DOM с помощью PHP проходит так же как в javascript, верно? Я имею ввиду называния методов и т.п.
Вот и тут мало примеров у меня. В нэте в основном статьи про методы прошлых версий работы с DOM.

Собственно, помогите разобраться как добавить этот элемент. Если можно примером.
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2010, 11:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,245

Сообщение от bayah
Я работаю через php5, там функции, наконец-то, стали соответствовать стандарту.
у меня лежит на компе справка к PHP4, и там есть раздел про DOM, и все там нормально
Сообщение от bayah
То есть теперь работа с DOM с помощью PHP проходит так же как в javascript, верно?
что за глупость?
в JS по-моему до сих пор ни в одном из браузеров полностью DOM не реализован.
я не читал оригинальный стандарт DOM, но похоже что в PHP он щаз полностью реализован, и при чем уже давно.
и несмотря на более полную поддержку DOM в PHP, нежели в JS, в PHP нельзя с ним работать так же как в JS, например из-за того же innerHTML, не входящего в стандарт.

По вашей же задаче:
в чем проблема?
это элементарное действие.
покажите код, который вы пробовали.
или вам с нуля за вас написать код?
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2010, 13:44
Кандидат Javascript-наук
Отправить личное сообщение для bayah Посмотреть профиль Найти все сообщения от bayah
 
Регистрация: 22.04.2010
Сообщений: 111

Код:
<?php
    $dom = new DOMDocument();
    $dom->load('xmlexample.xml');

    $newel = $dom->createElement('message');
    $newel->number=3;
    $root = $dom->getElementsByTagName('root');
    $root->appendChild($newel);
?>
Я делал вот так.
Получаю сообщение.
Fatal error: Call to undefined method DOMNodeList::appendChild() in Z:\home\rubbish\www\parcer\parcer.php on line 20
Не пойму почему метод не находится. Может я неверно обращаюсь с ним как-то?
Ответить с цитированием
  #4 (permalink)  
Старый 09.08.2010, 13:59
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,245

Сообщение от bayah
Call to undefined method DOMNodeList::appendChild()
в этом все сказано.
и та же бы ошибка у вас бы возникла в JS в аналогичной ситуации.
а все потому что, метод getElementsByTagName возвращает не один элемент(DOMNode), а множество элементов(DOMNodeList)
и метод appendChild может быть только у одного элемента(DOMNode), но не у списка элементов(DOMNodeList).
ТОлько, еслит в JS вы получали доступ к оперделенному элементу из списка, то вы пользовались индексом, то в PHP надо использовать метод item

это ваша самая главная и очевидная ошибка, связанная с невнимательностью. вам стоит быть повнимательней.

вторая же заключается в том, что к главному элементу документа доступ следует осуществлять через свойство documentElement
это вам тут не DOM for HTML в исполнении JS

ЗЫ не говоря уже о вашем неправильном доступе к атрибутам, и прочим.
весьма весело слышать от вас причитания о несоблюдении стандартов DOM-а в языке PHP, когда вы сами используете совсем не DOM_овскую спецификацию

Последний раз редактировалось Gvozd, 09.08.2010 в 14:05.
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2010, 17:06
Кандидат Javascript-наук
Отправить личное сообщение для bayah Посмотреть профиль Найти все сообщения от bayah
 
Регистрация: 22.04.2010
Сообщений: 111

Спасибо, буду внимательней.
Я причитаю только из факта реализации разных вариантов функций работы с DOM. Функции одной реализации нельзя использовать совместно с функциями другой, да и работают они по разному. Когда начинаю только изучать как это работает глаза разбегаются что куда. Но наконец нашел информацию.
Дмитрий Котеров, Алексей Костарев - "PHP5 в подлиннике", (Наиболее полное руководство по PHP5, примеры на PHP5, XML, ООП.)
Вроде бы толковая книжка.
Теперь разберусь.
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2010, 23:43
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,245

Сообщение от bayah
Но наконец нашел информацию.
Дмитрий Котеров, Алексей Костарев - "PHP5 в подлиннике"
книга по отзывам, конечно хорошая.
НО!
чем вам не угодил официальный мануал?!
в нем описаны ВСЕ функции PHP
Ответить с цитированием
  #7 (permalink)  
Старый 11.08.2010, 13:33
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

Сообщение от Gvozd Посмотреть сообщение
книга по отзывам, конечно хорошая.
НО!
чем вам не угодил официальный мануал?!
в нем описаны ВСЕ функции PHP
Абсолютно поддрживаю, к большинству функций ПХП в офф.мане приведены примеры, для пущей наглядности )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить элемент из дерева DOM dummer jQuery 13 16.01.2011 16:19
как в динамически добавляемый элемент добавить еще несколько? sadonn Элементы интерфейса 1 29.05.2010 12:07
Как узнать содержит ли DOM определенный элемент Ruslan Events/DOM/Window 8 12.03.2010 22:02
Как правильно добавить форму используя jQuery Casufi jQuery 1 15.02.2010 23:14
Как добавить элемент в обьект json Юрий Игоревич Общие вопросы Javascript 2 26.10.2009 15:01