Как получить адреса всех конечных узлов Dom на странице. PHP + Simple HTML DOM.

jabbaxatt

Добрый модератор
Регистрация
21 Янв 2009
Сообщения
902
Реакции
432
Инструмент PHP + Simple HTML DOM

Действия и цель:
1) Имеется HTML документ.

2) Нужно обойти все конечные узлы Dom дерева, проверить их на некое условие и если "Да" то получить адрес (формулу, Xpath) для доступа к этому узлу.

Вопросы:
1) Для доступа к конечным узлам Dom (т.е. узлам не содержащим вложенных в них HTML тегов) нужно самому писать цикл обхода всего Dom дерева? Если да - то хотелось бы примеры циклов для такого обхода, если нет - то какой способ лучше?

2) Как с помощью Simple HTML DOM получить получить адрес (формулу, Xpath) этого самого конечного узла? Для того, чтобы на другой странице сразу найти аналогичный узел. И какие при этом вероятны проблемы (Пока вижу только то что узлы-братья по этому Xpath не получится различать.)
 
Для более эффективной навигации по дереву документа доступны методы:

$e->children ( [int $index] ) Возвращает объект N-го прямого потомка, если индекс установлен, в противном случае возвращает массив всех дочерних элементов
$e->parent() Возвращает родительский элемент.
$e->first_child() Возвращает первый дочерний элемент, или null, если ничего не найдено
$e->last_child() Возвращает последний дочерний элемент, или null, если ничего не найдено
$e->next_sibling() Возвращает следующий родственный элемент, или null, если ничего не найдено
$e->prev_sibling() Возвращает предыдущий родственный элемент, или null, если ничего не найдено

Небольшой пример есть Для просмотра ссылки Войди или Зарегистрируйся и на Для просмотра ссылки Войди или Зарегистрируйся.
ЗЫ: сейчас тоже ковыряю эту библиотеку..
 
2) Как с помощью Simple HTML DOM получить получить адрес (формулу, Xpath) этого самого конечного узла? Для того, чтобы на другой странице сразу найти аналогичный узел. И какие при этом вероятны проблемы (Пока вижу только то что узлы-братья по этому Xpath не получится различать.)
Есть встроенный Для просмотра ссылки Войди или Зарегистрируйся
А братьев по номеру [] различать.
 
Назад
Сверху