Как использовать PHP Simple HTML DOM Parser для поиска не гиперссылки - PullRequest
3 голосов
/ 19 июля 2011

Я хочу разобрать html в dom-дереве и найти весь текст НЕ внутри тегов <a>, поэтому я нашел его в Google и нашел «PHP Simple HTML DOM Parser».Кажется, это может помочь мне разобрать HTML DOM в DOM Tree.Я хотел бы найти текст НЕ внутри тегов <a>, но я могу найти только тот элемент, который находится внутри тега <a>.* PS: он еще не поддерживает CSS3, а не селектор.Спасибо.Любой опыт по этому поводу?Спасибо.

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Надеюсь, я не неправильно понял вопрос, но разве вы не можете использовать встроенные функции DOM для PHP, чтобы найти текст внутри тегов <a>?

$doc = new DOMDocument();
$doc->loadHTMLFile("http://blahblah.com/blah.html");
$elem_list = $doc->getElementsByTagName("a");
foreach($elem_list as $elem)
    echo $elem->textContent;

В этом случае я бы удалил все теги <a> и их содержимое (например, с помощью регулярных выражений), а затем загрузил полученный HTML-код в выбранный вами DOM-анализатор.

Обновление : еще лучше, немедленно проанализируйте HTML и используйте встроенные функции, чтобы удалить теги <a>, или переберите все теги и просто пропустите теги <a>.Следует избегать регулярных выражений с HTML.

0 голосов
/ 19 июля 2011

Я использовал этот класс много раз. Это отличное решение для разбора HTML / DOM в php.

$html = new simple_html_dom();
// Load your html as string
$html->load('........ HTML ..........');
$a = $html->find('a');
$text='';
for($i=0;$i<count($a);$i++)
$text.=$a[$i]->innertext;

переменная $ text, содержащая весь текст в тегах. Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...