PHP DomCrawler не работает - PullRequest
0 голосов
/ 24 мая 2018

Я собираю некоторую информацию, используя PHP, DomDrawler и Xpath Helper.
Когда я запрашиваю некоторую информацию об узле, не возвращается совпадающее значение.
Я не знаю, почему это не такработа.

Страница enter image description here

<?php
require  '../vendor/autoload.php';
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;

function showcourse($response){
    $data    = []; //Store
    $crawler = new Crawler();
    $crawler->addHtmlContent($response);

    try {
        $data['name'] = $crawler->filterXPath('/html/body/div[@id=\'brief\']
     /table/tbody/tr[1]/td[1]/table[@class=\'items\'][1]/tbody/tr/td[@class=
     \'cover\'][1]/a[@id=\'NEU01000219238\']/img/@src')->text();
    } catch (\Exception $e) {
        echo "No nodes  ";
    }
    print_r($data);
    //echo $response;
}
?>

Результат enter image description here

Ничего не возвращается.

1 Ответ

0 голосов
/ 24 мая 2018

Во-первых, показанные вами примеры xpath отличаются друг от друга ... без XML-документа это просто дикое предположение, но этот тип ошибки, скорее всего, является проблемой выражения xpath.Попробуйте уменьшить сложность выражения xpath, пока не вернется ожидаемый результат.Или попробуйте начать с самого простого выражения /html.Если это также ничего не возвращает, попробуйте // как выражение ... если также нет результата, ошибка, скорее всего, не ваше выражение.Дважды проверьте, вернется ли действительный документ из вашего ответа.

...