簡體   English   中英

如何在php DOMXPath對象中返回?

[英]How to return in php DOMXPath object?

現在發現查詢,如果'$ NotXP-> query'=查詢返回字符串?!

下一個代碼如何工作?

$xp = new \DOMXPath(@\DOMDocument::loadHTMLFile($url));

        $list = $xp->query('//table[@class="table-list quality series"] tbody');
        $link = $list->query('//tr[@class="item"]');

        $arr_links = [];

        foreach ($link as $link_in_cycle) {
            $link_quality = $link_in_cycle->query('//td[@class="column first video"]');
            $link_audio = $link_in_cycle->query('//td[@class="column audio"]');
            $link_size = $link_in_cycle->query('//td[@class="column size"]');
            $link_seed = $link_in_cycle->query('//td[@class="column seed-leech"] span[@class="seed"]');
            $link_download_url = $link_in_cycle->query('//td[@class="column last download"] a')->getAttribute("data-default");

請求的HTML源@ nigel-ren

從此代碼需要獲取信息

   <tbody>
                                      <tr class="item">
                <td class="column first video">720x400</td>
                <td class="column audio">mp3</td>
                <td class="column size">5.70 Gb</td>
                <td class="column seed-leech">
                    <span class="seed">15</span>
                    <span class="leech">26</span>
                </td>
                <td class="column updated">07.07.2017</td>
                <td class="column consistence"><a href="javascript:void(0);" title="title in td" data-type="torrent-consistence" class="show-modal show-consistence" data-route="/hashinfo/12345?fields=files"></a></td>
                <td class="column last download">
                <a class="button middle rounded download zona-link"
   data-type="download"
   data-zona="0"
   data-torrent=""
   data-default="url_data"
   data-not-installed=""
   data-installed=""
   data-metriks="{'eventType': 'click', 'data' : { 'type': 'show_download', 'id': '84358'}}"
   title="text in title" href="javascript:void(0);" >Download</a>                </td>

我進行了一些更改以幫助調試代碼。 最主要的是,您的XPath表達式無效,您始終可以嘗試使用FreeFormatter這樣的站點,該站點允許您使用一些示例源檢查表達式。

$doc = new \DOMDocument();
$doc->loadHTMLFile($url);
$xp = new \DOMXPath($doc);

$list = $xp->query('//table[@class="table-list quality series"]//tr[@class="item"]');
$arr_links = [];

foreach ($list as $link_in_cycle) {

    $link_quality = $xp->query('//td[@class="column first video"]/text()', $link_in_cycle)[0]->wholeText;
    $link_audio = $xp->query('//td[@class="column audio"]/text()', $link_in_cycle)[0]->wholeText;
    $link_size = $xp->query('//td[@class="column size"]/text()', $link_in_cycle)[0]->wholeText;
    $link_seed = $xp->query('//td[@class="column seed-leech"]//span[@class="seed"]/text()', $link_in_cycle)[0]->wholeText;
    $link_download_url = $xp->query('//td[@class="column last download"]//a/@data-default', $link_in_cycle)[0]->value;

    echo $link_quality.PHP_EOL;
    echo $link_audio.PHP_EOL;
    echo $link_size.PHP_EOL;
    echo $link_seed.PHP_EOL;
    echo $link_download_url.PHP_EOL;
}

XPath表達式嘗試檢索每個元素中的文本節點,這將返回所有節點的列表,此代碼確實假定實際內容周圍沒有空格(並使用[0]來獲取其中的第一個元素名單)。 整個wholetext只是DOMText元素的實際內容。

使用您給出的示例內容(加上我必須發明的周圍內容),它給出了...

720x400
mp3
5.70 Gb
15
Download

暫無
暫無

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

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