rpsv
@rpsv
делай либо хорошо, либо никак

Почему DOMNode->nodeValue «съедает» HTML теги?

Здрасте! Задача стоит в следующем:

1) Грузим данные от скрипта с другого домена (HTML код страницы)
2) Парсим его изощренными методами

По второму пункту подробнее:
Разбираем страницу с помощью DOMDocument. Когда использую $col->textContent ($col - это DOMNode) я получаю содержание узла, НО съедаются все HTML теги! То же самое и при использовании $col->nodeValue.

3) Парсинг по тегу < br>

* собственно в этом то и проблема, что тега < br> больше нет!!!

Как вариант можно менять < br> чем-то неадекватным, но это не вариант!

Собственно вопрос почему nodeValue съедает теги, или предложите альтернативу...
  • Вопрос задан
  • 3498 просмотров
Решения вопроса 1
MaximAL
@MaximAL
Рекомендую phpQuery — парсер с языком запросов в виде CSS (как jQuery).
Для больших объёмов он тяжеловат, но в данном случае поможет.

А вообще, теги съедаются, потому что вы используете аттрибут, который только текст возвращает (как если бы вы в браузере скопировали текст элемента).

Используйте методы для получения исходного XML:
$html = $node->ownerDocument->saveHTML($node);
и прочее.

Больше информации: http://www.php.net/manual/en/class.domelement.php.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы