」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 使用PHP的DOMDocument擷取節點時如何保留HTML標籤?

使用PHP的DOMDocument擷取節點時如何保留HTML標籤?

發佈於2024-12-22
瀏覽:642

How Can I Preserve HTML Tags When Extracting Nodes Using PHP's DOMDocument?

使用DOMDocument 提取HTML 節點的問題

簡介

DOMDocument 是PHP 類,提供了一種便捷的解析方法以及操作HTML 文件。然而,當嘗試在提取內容時保留 HTML 標籤時,使用者可能會遇到困難。本文深入探討了 DOM 的基本概念,並提出了應對這項挑戰的解決方案。

理解 DOM 和節點

DOMDocument 將 HTML 文件表示為節點的分層樹。每個節點可以有子節點,形成複雜的結構。認識到 HTML 元素及其屬性和文字內容都表示為 DOMDocument 中的節點至關重要。

解決標籤保留問題

提供的程式碼成功取得具有「showContent」id 的 DIV 節點。但是,它僅檢索 DIV 中的文字內容,不包括 HTML 標記本身。這是因為程式碼使用了$tag->nodeValue,它只提取文字而不是實際的節點。

解決方案:遍歷節點

要保留 HTML 節點,您需要遍歷目標節點的子節點。下面的程式碼展示了這個方法:

$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);

$tags = $xpath->query('.//div[@id="showContent"]');
foreach ($tags as $tag) {
    echo $dom->saveXML($tag);
    echo '
'; }

從HTML 檢索特定資訊

如果您需要來自HTML 文件的特定資訊(例如表中的連結),您可以修改XPath 查詢以選擇適當的節點。例如:

foreach ($div->getElementsByTagName('a') as $link) {
    echo $dom->saveXML($link);
}

其他資源

其他資源
  • 有關使用DOMDocument 的更多協助,請參閱以下資源:
[DOMDocument 文件](https : //www.php.net/manual/en/class.domdocument.php)

How Can I Preserve HTML Tags When Extracting Nodes Using PHP's DOMDocument?
[問題與解答Stack Overflow中的 DOMDocument](https://stackoverflow.com/search?q=user:208809 DOM)

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3