Php 将部分dom元素转换为包含html标记的字符串
我需要将DOM元素的一部分转换为包含html标记的字符串 我尝试了以下内容,但它只打印了一个文本,没有标签的一面Php 将部分dom元素转换为包含html标记的字符串,php,html,dom,Php,Html,Dom,我需要将DOM元素的一部分转换为包含html标记的字符串 我尝试了以下内容,但它只打印了一个文本,没有标签的一面 $dom = new DOMDocument(); $dom->loadHTMLFile('http://www.pixmania-pro.co.uk/gb/uk/08920684/art/packard-bell/easynote-tm89-gu-015uk.html'); $xpath = new DOMXPath($dom); $elements=xpath->qu
$dom = new DOMDocument();
$dom->loadHTMLFile('http://www.pixmania-pro.co.uk/gb/uk/08920684/art/packard-bell/easynote-tm89-gu-015uk.html');
$xpath = new DOMXPath($dom);
$elements=xpath->query('//table');
foreach($elements as $element)
echo $element->nodeValue;
我想要所有的标签和表中的内容。谁能帮帮我吗。这将是一个很大的帮助
谢谢。:
旧答案(php<5.3.6):
foreach($elements as $element){
$newdoc = new DOMDocument();
$cloned = $element->cloneNode(TRUE);
$newdoc->appendChild($newdoc->importNode($cloned,TRUE));
echo $newdoc->saveHTML();
}
使用php 5.3.6或更高版本,您可以在以下位置使用节点:
哦,谢谢你,戴夫,这正是我需要的。这节省了很多时间。再次感谢您。tnx guy您真的很有用:请注意这里下面的dennis answer,用于更新的PHP版本。在我这边测试时,出现了“$cloned=$element->cloneNode(TRUE);”如果将$element项放在importNode方法中,而不是按原样放置“$cloned”项,则不需要行。
foreach($elements as $element){
$newdoc = new DOMDocument();
$cloned = $element->cloneNode(TRUE);
$newdoc->appendChild($newdoc->importNode($cloned,TRUE));
echo $newdoc->saveHTML();
}
foreach($elements as $element){
echo $dom->saveHTML($element);
}