簡體   English   中英

在某些類PHP DOMDocument的div上方獲取一個div

[英]Get one div above the div of certain class PHP DOMDocument

這是我第一次使用PHP DOMDocument,我不知道它的方法。

我抓取具有以下格式的html

<div class=row abc>...</div>
<div class=row xyz>...</div>
<div class=row qrs>...</div>
...
...
<div class="row>This is what i want to grab</div>
<div class="row show-more-result">Show More</div>

我要實現的目標是,首先我選擇類show-more-results的div,然后定位存在數據的上一級div。

我已經開始探索PHP DOMDocument類,但是沒有發現任何getElementByClass方法

public function scrapping()
{
    // Create a DOMDocument Object to fetch the search results
    $dom = new \DOMDocument;
    @$dom->loadHTML($this->_response);
    $dom->preserveWhiteSpace = false;

    $xpath = new \DomXpath($dom);
    $show_more_div = $xpath->query('//*[@class="show-more-result"]')->item(0);
    $stuff = $show_more_div->textContent;

    echo($stuff);

}

我試圖將show定位為更多div,但是它說Trying to get property of non-object就像$xpath-query()什么也不返回一樣。

請幫助我定位所需的div。

更新

var_dump($xpath->query('//*[@class="show-more-result"]')->item(0));
// NULL

您正在執行直線字符串相等:

$show_more_div = $xpath->query('//*[@class="show-more-result"]')->item(0);
                                       ^^^^^^^

但是您的目標div的類實際上是row show-more-result 您需要進行子字符串匹配:

//*[contains(@class, 'show-more-result')]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM