php - 将部分 dom 元素转换为带有 h​​tml 标签的字符串

标签 php html dom

我需要将部分 DOM 元素转换为带有 h​​tml 标签的字符串。

我试过跟随,但它只打印一个没有标签的文本。

$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;

我想要所有的标签和表格中的内容。有人能帮我吗。这将是一个很大的帮助。

谢谢。

最佳答案

Current solution :

foreach($elements as $element){
    echo $dom->saveHTML($element);
}

旧答案(php < 5.3.6):

  1. 创建 DomDocument 的新实例
  2. 克隆您希望保存为 HTML 的节点(包含所有子节点)
  3. 将克隆的节点导入到新的 DomDocument 实例并将其作为子节点追加
  4. 将新实例保存为 html

所以是这样的:

foreach($elements as $element){
    $newdoc = new DOMDocument();
    $cloned = $element->cloneNode(TRUE);
    $newdoc->appendChild($newdoc->importNode($cloned,TRUE));
    echo $newdoc->saveHTML();
}

关于php - 将部分 dom 元素转换为带有 h​​tml 标签的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4530504/

相关文章:

javascript - 所选下拉项中页面加载时的事件勾号

javascript - 通过 DOM 递归搜索以剔除innerText

javascript - "document.createElement"如何作用于 "display"属性

php - 使用 Now() 搜索 MySQL 总是返回 true

php - Android HttpPost 从 PHP 脚本而不是 JSONArray 获取 NULL

html - HTML 和 CSS 中的水平线和垂直线相交

java - 如何将包含 HTML 元素的 Java 字符串解析为 JsonObject?

javascript - 为什么不对 DOM 元素函数应用工作?

php - 是否有可能在所有应用程序中使一个功能在 php 中全局可用

javascript - websocket php 与 Node js