簡介
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 '<br>'; }
從HTML 檢索特定資訊
如果您需要HTML 文件中的特定信息,例如表格中的鏈接,您可以修改XPath 查詢以選擇適當的節點。例如:
foreach ($div->getElementsByTagName('a') as $link) { echo $dom->saveXML($link); }
其他資源
有關使用 DOMDocument 的更多協助,請參閱以下資源:
以上是使用PHP的DOMDocument擷取節點時如何保留HTML標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!