PHP работа с DOM(получить последний\первый элемент)
Есть такой xml-файл:
Код:
<?xml version="1.0" encoding="windows-1251"?>
$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? И как это вообще делается по-нормальному? |
А с чего Вы взяли, что у экземпляров класса DOMNodeList существует свойство lastChild?
|
а разве нет?
подождите, а у какого класса тогда lastChild существует? |
а... это свойство конкретно элемента..
ну вроде разобрался, работает
$dom = new DOMDocument("1.0", "windows-1251");
$dom->load("xmlexample1.xml");
$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;
$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. только у меня получается все наоборот. |
А где Вы инициализируете переменную $root? Я с DOMDocument не работал, но не верю, что конструктор создает новую глобальную переменную.
|
| Часовой пояс GMT +3, время: 09:10. |