Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Получить дочерний элемент с заданным тегом


Автор: trix 10.12.2007, 06:12
сразу прошу не ругать за возможно ламерский вопрос, просто в этом разделе php я совсем новенький.

значит есть у меня код:
Код

$dom = new DomDocument(); 
$dom->loadHTMLFile("адрес страницы"); 

$up= $dom->getElementsByTagName("table");

$dn = $dom->getElementsByTagName("div"); 
//дальше идет обработка этого dn


$dn - это див, первый попавшийся, а мне нужно найти div, который являеться дочерним(вложенным) тегом table.
т.е. что-то такое:
Код

<table>
<tr><td>
<div> 111 </div>
</td></tr>
</table>


вопрос. как мне в $up найти вложенный элемент с тегом div?

Автор: Vaulter 10.12.2007, 09:16
Код

$dom = new DomDocument(); 
$dom->loadHTMLFile("адрес страницы"); 
$xpath = new DOMXPath($dom);

$divsNodeList = $xpath->query('//table/div');



Автор: trix 10.12.2007, 10:35
Vaulter, спасибо за вариант, но я упустил один момент. мне нужен див определенного table.
table отличаеться от других по атрибутами. можно ли как-то найти див вложенный в table с определенными атрибутами?

Автор: Vaulter 10.12.2007, 11:14
конечно можно, ведь xpath - язык запросов xml документов

Автор: trix 10.12.2007, 11:53
так, смотрите еще раз. вот есть table, у него атрибут border=1. в этом table есть div.
так вот мне нужно найти table, найти в нем border, если он есть то выяснить чему он равен, найти внутри див.

помойму языком запросов выяснить чему равен border невозможно.

Автор: Vaulter 10.12.2007, 12:15
могу ошибатся,но
Код

//table[border=1]/div



Автор: trix 10.12.2007, 12:39
верно. но это при условии что я знаю что border равен 1.
а если я этого не знаю, и мне нужно наоборот узнать чему равен border?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)