合并两个DOMDocument节点

时间:2017-09-05 14:31:57

标签: php html simple-html-dom

<table>
<tr>
    <th>Year</th>
    <th>Score</th>
</tr>
<tr>
    <td>2014</td>
    <td>3078</td>
</tr>
</table>

如果我将上表成功存储为变量,我怎么能将它附加到具有overflow-x样式属性的div?

我尝试过以下代码片段,但没有雪茄:

$div = str_get_html('<div style="overflow-x:auto;"></div>');

$div = $div->find('div');

$div = $div->appendChild($table);

return $div;

所以预期的输出应该是:

<div style="overflow-x:auto;">
<table>
    <tr>
        <th>Year</th>
        <th>Score</th>
    </tr>
    <tr>
        <td>2014</td>
        <td>3078</td>
    </tr>
</table>
</div>

1 个答案:

答案 0 :(得分:1)

希望这个能给你一个基本的实施理念。我们在这里使用DOMDocument

Try this code snippet here

<?php

ini_set('display_errors', 1);

//creating table node

$tableNode='<table><tr><th>Year</th><th>Score</th></tr><tr><td>2014</td><td>3078</td></tr></table>';

$domDocument = new DOMDocument();
$domDocument->encoding="UTF-8";
$domDocument->loadHTML($tableNode);
$domXPath = new DOMXPath($domDocument);
$table = $domXPath->query("//table")->item(0);

//creating empty div node.

$domDocument = new DOMDocument();
$element=$domDocument->createElement("div");
$element->setAttribute("style", "overflow-x:auto;");

$result=$domDocument->importNode($table,true);//importing node from of other DOMDocument
$element->appendChild($result);
echo $domDocument->saveHTML($element);