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

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

Linda Hamilton
Linda Hamilton原創
2024-12-22 18:39:10364瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn