首頁 > 後端開發 > php教程 > 正規表示式與 DOM 解析:哪一種最適合從 HTML 提取 `href` 屬性?

正規表示式與 DOM 解析:哪一種最適合從 HTML 提取 `href` 屬性?

Linda Hamilton
發布: 2024-12-22 18:39:10
原創
344 人瀏覽過

Regex vs. DOM Parsing: Which is Best for Extracting `href` Attributes from HTML?

抓取A 元素的href 屬性:正規表示式與DOM 解析

嘗試從HTML 頁面中提取連結資訊需要小心處理href屬性。雖然正規表示式提供了一種基本方法,但當 href 屬性未放在 a 標記的第一位時,它們可能會遇到困難。

可靠的替代方案是利用文件物件模型 (DOM) 解析。以下是如何使用 DOM 有效抓取 href 屬性資訊:

$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $node) {
    echo $dom->saveHtml($node), PHP_EOL;
}
登入後複製

此程式碼尋找並輸出 $html 字串中所有 A 元素的「outerHTML」。

此外,DOM 還提供了以下功能:

  • 取得文字值: $node->nodeValue
  • $node->nodeValue
  • 檢查屬性是否存在: $node->hasAttribute( 'href' )
  • 取得href 屬性: $node->getAttribute( 'href' )
  • 更改href 屬性: $node->' href', 'something else')
  • 刪除 href 屬性: $node->removeAttribute('href')
直接用XPath查詢href屬性:
$nodes = $xpath->query('//a/@href');
foreach ($nodes as $href) {
    echo $href->nodeValue; // echo current attribute value
}
登入後複製

DOM提供了全面的解決方案高效解析HTML並擷取href屬性資訊。考慮這種方法以獲得穩健可靠的結果。另外,請參閱提供的資源以進行進一步探索。

以上是正規表示式與 DOM 解析:哪一種最適合從 HTML 提取 `href` 屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板