Как пройти дочерние элементы по xpath в DomNodeList?

У меня есть этот PHP-скрипт:

<?php
libxml_use_internal_errors(true);
/* Createa a new DomDocument object */
$dom = new DomDocument;
$dom_grep = new DomDocument;
/* Load the HTML */
$dom->loadHTMLFile("http://domain.com/catalog/0_1.html");
/* Create a new XPath object */
$xpath = new DomXPath($dom);
/* Query all <table> nodes containing specified class name */
$nodes = $xpath->query("/html/.//table[@class='right']");
/* Set HTTP response header to plain text for debugging output */
header("Content-type: text/plain");

/* How to make Xpath in code below??? */
foreach ($nodes as $i => $node) {
        $child[$i]["title"] = $node->query("//tr[@class='bg3']//h3");
        $child[$i]["href"] = $node->query("a['href=/catalog/details']");

    }
}
?>

Но в результате я получил эту ошибку: «Неустранимая ошибка: вызов неопределенного метода DOMElement::query()» в массиве $child

Как сделать еще один запрос xpath в $nodes?

Благодарю вас!


person user3061744    schedule 05.12.2013    source источник
comment
Ну, я полагаю, вы слишком рано нажали кнопку отправки вопроса. Ваш фактический вопрос, кажется, был отрезан. :-)   -  person Marcus Rickert    schedule 06.12.2013
comment
В первом запросе я ищу часть кода, например DIV или TABLE и т. д. Во втором запросе мне нужно найти узлы, значения узлов или атрибуты узлов (это зависит от входных аргументов), которые были переданы в скрипте как xpath. Поэтому мне нужно сделать Xpath в уже выбранной части HTML (DomNodeList).   -  person user3061744    schedule 06.12.2013
comment
Использование таких терминов, как как некоторые DIV или TABLE и т. д., не очень хорошая идея в качестве части вопроса в StackOverflow. Если вопрос расплывчатый, ответы тоже будут. Уточните: что не работает в вашем скрипте? Чего вы ожидаете?   -  person Marcus Rickert    schedule 06.12.2013
comment
Я изменил исходный вопрос. Теперь стало понятнее?   -  person user3061744    schedule 06.12.2013
comment
Я думаю, что это. Вы хотите сделать относительные подзапросы, начиная с ранее выбранного узла. На самом деле вам нужно знать следующее: а) что такое выражение XPath для относительного запроса и б) как вы называете запрос с точки зрения PHP? Правильный?   -  person Marcus Rickert    schedule 06.12.2013
comment
Все запросы xpath верны. как вы называете запрос PHP-мудрым? Правильный? - Что ты имеешь в виду? Как вы сказали, вопрос об относительных подзапросах в PHP. Так я и спрашиваю именно об этом.   -  person user3061744    schedule 06.12.2013
comment
Итак, ваши выражения XPath работают? Тогда почему вы пишете Как сделать Xpath в коде ниже??? в исходном коде?   -  person Marcus Rickert    schedule 06.12.2013
comment
Проблема в $nodes или $node, поскольку DomNodeList не поддерживает метод query(). Итак, мне нужно решить эту проблему, мне нужно сделать еще один запрос в DomNodeList. Как я могу решить эту ситуацию?   -  person user3061744    schedule 06.12.2013
comment
Возможный дубликат Как выполнить запрос XPath на DOMNode?   -  person Jeff Puckett    schedule 29.12.2017