第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 PHP DOMXpath 解析 HTML

使用 PHP DOMXpath 解析 HTML

PHP
慕雪6442864 2023-07-08 16:26:23
我想使用 PHP 和 DOMXpath 從外部網(wǎng)站檢索事件鏈接和文本。外部網(wǎng)站html結(jié)構(gòu)如下;<!-- first --><div class="col-sm-12 col-lg-3 me recording-item">    <div class="recording-item-inner">        <a class="col-sm-12 recording-name" href="/recordings/191">        <div class="info">            <b>Daily Event</b><br>            <small>29 Jun 2020</small>        </div></a>    </div></div><!-- second --><div class="col-sm-12 col-lg-3 me recording-item">    <div class="recording-item-inner">        <a class="col-sm-12 recording-name" href="/recordings/190">        <div class="info">            <b>Daily Event B</b><br>            <small>26 Jun 2020</small>        </div></a>    </div></div><!-- third --><div class="col-sm-12 col-lg-3 me recording-item">    <div class="recording-item-inner">        <a class="col-sm-12 recording-name" href="/recordings/189">        <div class="info">            <b>Daily Event C</b><br>            <small>22 Jun 2020</small>        </div></a>    </div></div>我正在嘗試檢索最新的 5 個事件名稱、日期和鏈接。目前我可以使用下面的代碼獲取最新的(單個)事件。<?phpfunction getEvents(){    $page = file_get_contents('https://example.com/events');    $rootUrl = 'https://example.com';    @$doc = new DOMDocument();    @$doc->loadHTML($page);    $xpath = new DomXPath($doc);    $nodeList = $xpath->query("//div[@class='recording-item']");    $node = $nodeList->item(0);    $href = $xpath->evaluate("string(//div[@class='recording-item-inner']/a/@href)");    $eventUrl = $rootUrl . $href;    return $eventUrl;}?>我如何修改此代碼,以便它檢索 5 個最近的事件詳細(xì)信息并打印出簡單的項(xiàng)目列表;<ul>  <li>Event 1 - [name], [date], [href]</li>  <li>Event 2 - [name], [date], [href]</li>  <li>Event 3 - [name], [date], [href]</li>  <li>Event 4 - [name], [date], [href]</li>  <li>Event 5 - [name], [date], [href]</li></ul>
查看完整描述

1 回答

?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個贊

這是可以做到的,但由于 xpath 支持有限,它不是最優(yōu)雅的解決方案。


從 開始$nodeList;鑒于您的示例 xml 只有 3 個事件,此代碼將輸出有關(guān)前兩個事件的所需信息。顯然,您可以根據(jù)實(shí)際代碼修改它:


$nodeList = $xpath->query('//div[./div[@class="recording-item-inner"]]//div[@class="info"]');

$i = 1;

echo htmlspecialchars("<ul>", ENT_QUOTES);

echo "<br>";

foreach($nodeList as $result) { 

   if ($i++ > 2) break;

   echo htmlspecialchars("<li>", ENT_QUOTES);

   echo "Event 1 - " . $result->childNodes[1]->textContent . ",   ";

   echo $result->childNodes[4]->textContent . ",   ";

   echo $result->parentNode->getAttribute('href');

   echo htmlspecialchars("</li>", ENT_QUOTES);   

   echo "<br>";

   }

echo htmlspecialchars("</ul>", ENT_QUOTES);

輸出:


<ul>

<li>Event 1 - Daily Event, 29 Jun 2020, /recordings/191</li>

<li>Event 1 - Daily Event B, 26 Jun 2020, /recordings/190</li>

</ul>


查看完整回答
反對 回復(fù) 2023-07-08
  • 1 回答
  • 0 關(guān)注
  • 159 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號