簡介
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); }
其他資源
其他資源[問題與解答Stack Overflow中的 DOMDocument](https://stackoverflow.com/search?q=user:208809 DOM)
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3