Получить текущий идентификатор родительского элемента, используя domXpath - PullRequest
0 голосов
/ 15 апреля 2019

Я работаю над получением рейтинга домена на baidu.

То, что я пытаюсь сделать, это получить позицию результата, когда появится домен, мне удается получить доменное имя, моя проблема заключается в позиции.

Мне нужно получить id (это позиция) result c-container, когда домен появится в результате. надеюсь, ты поможешь мне.

спасибо.

$finder = new DomXPath($document);
        $results = $finder->query("//*[contains(@class, 'result c-container')]");

        if($element){

            $data = array();

            foreach ($results as $result) {
                # code...


                $as = $result->getElementsByTagName('a');
                foreach ($as as $a){
                    if ($a->getAttribute('class') === 'c-showurl') {  
                        $textUrl = $a->nodeValue;

                        if (($pos = strpos($textUrl, "}")) !== FALSE) { 
                            $textUrl = substr($textUrl, $pos+1); 
                        }

                        $domain = trimUrl($domain);

                        if(preg_match("/{$domain}/i", $textUrl)) {
                            $data['domain'] = $textUrl;
                            $data['id'] = ?
                        }


                    }
                }

            }

            array_push($res, $data);

        }else{
            $data = array();
            array_push($res, $data);
        }

1 Ответ

1 голос
/ 15 апреля 2019

Из документации

$item->parentNode->tagName

exmaple

 if($item->parentNode->tagName == "h2") {
    $href =  $item->getAttribute("href");
    $text = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
    $links[] = [
      'href' => $href,
      'text' => $text
    ];
  }

источник: https://www.the -art-of-web.com / php / html-xpath-query /# section_3

...