2012-04-06 2 views
3

У меня есть HTML-строку, которая может выглядеть примерно так:PHP DOM: Получить все текстовые значения

<body> 
    <div> 
    <span class="blah">Monkey </span> 
    <p>breath really <b>stinks</b></p> 
    And I don't like it! 
    </div> 
</body> 

Как вы можете видеть, что есть какой-то текст, содержащийся правильно как значение внутри элемента, есть элементы, содержащие текстовые узлы и другие элементы. Я хотел бы получить все текстовые значения под телом (предположим, что тело - это элемент DOMElement, который я сохранил в переменной).

Таким образом, вывод будет выглядеть примерно так:

обезьяны Breat действительно воняет И мне не нравится это!

Как бы это сделать? XPath? Regexps? Магия?

+0

Попробуйте волшебство, когда он чувствует, вы используете javascript. – Chibuzo

+0

@jwegner - зачем вам это делать? в чем дело? – Flukey

+1

@Flukey Подобно «плотности ссылок», как обсуждалось [здесь] (http://stackoverflow.com/questions/3652657/what-algorithm-does-readability-use-for-extracting-text-from-urls), я бы как рассчитать плотность для HTML-формы – jwegner

ответ

0

Если вы не против использования jquery, у меня может быть ответ на этот вопрос.

Сначала необходимо просканировать content.So использовать PHP завиток для этого, и эхо content.After вы получаете содержание в организме вызвать функцию JQuery, которая имеет следующую строку,

предположив весь текст содержится в DIV с содержанием ид

$('#content').text() gives you the required output. 

Remember использовать Jquery делегата связать функцию к тому, что событие вы выбираете.

+0

Это внутри PHP, и HTML собирается через cURL. К сожалению, jQuery не вариант. – jwegner

+0

Я использую одно и то же ежедневно. Я просто отредактирую этот ответ, чтобы дать вам полную картину. –

+1

Нет, действительно, это невозможно сделать в интерфейсе. Там буквально нет никакого интерфейса. Подумайте об этом как о какой-то функции API - что-то, что полностью работает на сервере, и полученный результат передается пользователю через JSON. – jwegner

Смежные вопросы