Javascript.RU

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

PHP работа с DOM(получить последний\первый элемент)
Есть такой xml-файл:

Код:
<?xml version="1.0" encoding="windows-1251"?>
<root>
	<theme one="1" two = "2">some_text</theme>
        //...
        <theme>bla bla bla</theme>
</root>
Теперь мне нужно получать последний элемент <theme>. На php я делаю так:

$dom = new DOMDocument("1.0", "windows-1251");
$dom->load("xmlexample1.xml");
$text = $dom->getElementsByTagName('theme')->lastChild->textContent;
echo $text;


В надежде получить на выходу:
bla bla bla
...

уже разобрался - сделал так:


$dom = new DOMDocument("1.0", "windows-1251");
$dom->load("xmlexample1.xml");
$temp = $dom->getElementsByTagName('theme');
$text  =$temp->item($temp->length)->textContent;
echo $text;


Но все же почему не получалось через lastChild? И как это вообще делается по-нормальному?
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2011, 20:00
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

А с чего Вы взяли, что у экземпляров класса DOMNodeList существует свойство lastChild?
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2011, 03:41
Кандидат Javascript-наук
Отправить личное сообщение для bayah Посмотреть профиль Найти все сообщения от bayah
 
Регистрация: 22.04.2010
Сообщений: 111

а разве нет?
подождите, а у какого класса тогда lastChild существует?
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2011, 05:23
Кандидат Javascript-наук
Отправить личное сообщение для bayah Посмотреть профиль Найти все сообщения от bayah
 
Регистрация: 22.04.2010
Сообщений: 111

а... это свойство конкретно элемента..
ну вроде разобрался, работает

$dom = new DOMDocument("1.0", "windows-1251");
	$dom->load("xmlexample1.xml");
	$temp = $dom->firstChild; //тут получили элемент root
	$text  =$temp->lastChild->textContent; //а тут текст bla bla bla
	echo $text;


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

Еще вопрос возник.

Так работает:

$dom = new DOMDocument("1.0", "windows-1251");
$dom->load("xmlexample1.xml");
$root->$dom->documentElement;         
$temp = $dom->firstChild; //тут получили элемент root
$text  =$temp->lastChild->textContent; //а тут текст bla bla bla
echo $text;


А так - нет:

$dom = new DOMDocument("1.0", "windows-1251");
$dom->load("xmlexample1.xml");
$root->$dom->documentElement;         
$text  =$root->lastChild->textContent; 
echo $text;


или я опять что-то путаю?
в этой статье( https://developer.mozilla.org/en/DOM...ocumentElement )
об этом как раз и говориться:
That's why you should use document.documentElement rather than document.firstChild to get the root element.

только у меня получается все наоборот.

Последний раз редактировалось bayah, 14.02.2011 в 06:34.
Ответить с цитированием
  #6 (permalink)  
Старый 14.02.2011, 17:29
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

А где Вы инициализируете переменную $root? Я с DOMDocument не работал, но не верю, что конструктор создает новую глобальную переменную.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
событие на динам. элемент (jQery, Ajax, php) kost_ik jQuery 2 06.11.2010 12:16
Как добавить элемент в XML через DOM используя PHP? bayah Серверные языки и технологии 6 11.08.2010 13:33
Работа js +php без обновления страницы Jekel Javascript под браузер 18 29.11.2009 20:17
PHP работа с датой twolf Серверные языки и технологии 11 18.02.2009 01:43