用PHP 的HTML DOMDocument 解析HTML
問題:
利用DOMDocument 對象,捕獲特定HTML 元素中的文字。例如,從以下HTML 擷取「擷取此文字1」與「擷取此文字2」:
<div class="main"> <div class="text"> Capture this text 1 </div> </div> <div class="main"> <div class="text"> Capture this text 2 </div> </div>
答案:
使用DOMDocument::getElementsByTagName檢索具有特定名稱的所有標籤可能會對此任務效率低下。相反,請考慮利用 DOMXPath 類別對文件使用 XPath 查詢。
實作:
將HTML 載入到DOMDocument物件:
<code class="php">$html = <<<HTML <div class="main"> <div class="text"> Capture this text 1 </div> </div> <div class="main"> <div class="text"> Capture this text 2 </div> </div> HTML; $dom = new DOMDocument(); $dom->loadHTML($html);</code>
實例化DOMXPath 物件:
<code class="php">$xpath = new DOMXPath($dom);</code>
執行XPath查詢:
<code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>執行XPath
檢索文字值:
<code class="php">foreach ($tags as $tag) { var_dump(trim($tag->nodeValue)); }</code>
以上是如何使用 PHP 的 DOMDocument 和 XPath 有效地從特定 HTML 元素中提取文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!