我已經查看了關於此主題的其他Stackoverflow問題,並且沒有提供的解決方案似乎適用於我。使用PHP的DOM獲取div的內容
我有一個HTML頁面(與file_get_contents()
刮),並在該HTML是一個ID爲「主」的div - 我需要獲得與PHP的DOMDocument該div的內容,或類似的東西。對於這種情況,我不能使用SimpleHTMLDom解析器,這會使事情變得複雜一些。
我已經查看了關於此主題的其他Stackoverflow問題,並且沒有提供的解決方案似乎適用於我。使用PHP的DOM獲取div的內容
我有一個HTML頁面(與file_get_contents()
刮),並在該HTML是一個ID爲「主」的div - 我需要獲得與PHP的DOMDocument該div的內容,或類似的東西。對於這種情況,我不能使用SimpleHTMLDom解析器,這會使事情變得複雜一些。
DOM文檔+ XPath的變化:
$xml = new DOMDocument();
$xml->loadHtml($temp);
$xpath = new DOMXPath($xml);
$html = '';
foreach ($xpath->query('//div[@id="main"]/*') as $node)
{
$html .= $xml->saveXML($node);
}
如果您正在尋找innerHTML()
(PHP DOMDocument Reference Question) - 而不是innerXML()
在這個答案 - 在XPath的相關變體給出in this answer。
這裏通過與變化強調:
$html = '';
foreach ($xpath->query('//div[@id="main"]/node()') as $node)
######
{
$html .= $xml->saveHTML($node);
####
}
奇妙地工作,非常感謝。 –
使用DOMDocument ...
$dom = new DOMDocument;
$dom->loadHTML($html);
$main = $dom->getElementById('main');
要獲得序列化的HTML ...
html = '';
foreach($main->childNodes as $node) {
$html .= $dom->saveXML($node, LIBXML_NOEMPTYTAG);
}
使用saveHTML()
如果你的PHP版本支持。
當你說·我需要得到該div *的意思一個HTML中的內容是什麼? – alex
[DOMElement getElementById(string $ elementId)](http://php.net/manual/en/class.domdocument.php) – Ibu