Я разместил ТАК вопрос: PHP DOM пересекает узлы HTML и дочерний узел
Кто-то любезно дал мне решение для этого. Однако данные, которые я анализирую, на самом деле имеют несколько тегов гиперссылок, как показано ниже:
<tr>
<td>DATA 1</td>
<td><a href="12345" target="_top">DATA 2</a></td>
<td><a href="other_link">DATA 3</a></td>
</tr>
Мой желаемый вывод - выбрать только href
(например, «12345») для тега гиперссылки с целью "_top"
.
Мой текущий код выбирает все теги гиперссылки в таблице.
foreach ($dom->getElementsByTagName('td') as $node) {
foreach ($node->getElementsByTagName('a') as $node){
$array_href[]= $node->getAttribute('href');
}
$array_data[] = $node->nodeValue;
}
2 ответа
target
- это просто еще один атрибут, например href
. Получите значение и сравните:
foreach ($node->getElementsByTagName('a') as $node){
if ($node->getAttribute('target') === '_top') {
$array_href[]= $node->getAttribute('href');
}
}
При циклическом просмотре тегов a
создайте новый if
, который проверяет, содержит ли узел атрибут target
со значением _new
, т.е.
foreach ($dom->getElementsByTagName('td') as $node) {
foreach ($node->getElementsByTagName('a') as $node){
if ($node->getAttribute('target') == '_top') {
$array_href[] = $node->getAttribute('href');
}
}
$array_data[] = $node->nodeValue;
}
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.