php xpath

lutskboy
На сайте с 22.11.2013
Offline
171
854

Привет

подскажите как можно в xpath вытащить блок а в нем другой блок

например


$dom = new DomDocument();
$dom->loadHTML( $body );
$xpath = new DomXPath( $dom );
$result = $xpath->query("//table[@border='1']");
$tr = $result->query("tr");

как видно из кода я достаю таблицу. а потом мне нужно взять в ней tr

и так не проканало $tr = $result->query("tr");

MT
На сайте с 17.01.2017
Offline
22
#1

Например так


$result->item(0)->getElementsByTagName('tr');

либо так


$xpath->query('./path/to/tr', $result->item(0));
ДП
На сайте с 23.11.2009
Offline
203
#2

1. В xpath можно сразу найти нужный вам элемент, там поддерживаются достаточно сложные запросы.

2. В методе query есть второй аргумент - это контекст, т.е. поиск будет проходить только в узле, который вы туда передаёте. По сути MikeTheRaven про это и написал.

lutskboy
На сайте с 22.11.2013
Offline
171
#3

спасибо всем.

$xpath->query('./path/to/tr', $result->item(0));

то что нужно

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий