当前位置: 首页 > 面试题库 >

如何将HTML插入PHP DOMNode?

宗政卓
2023-03-14
问题内容

有什么方法可以将HTML模板插入到现有DOMNode中,而无需对内容进行编码?

我试图做到这一点:

$dom->createElement('div', '<h1>Hello world</h1>');
$dom->createTextNode('<h1>Hello world</h1>');

输出几乎相同,唯一的区别是第一个代码会将其包装在div中。我试图从字符串加载HTML,但是我不知道如何将其主体内容附加到另一个DOMDocument中。

在javascript中,此过程似乎非常简单明显。


问题答案:

它与另一个DOMDocument一起用于解析HTML代码。但是您需要先将节点导入主文档,然后才能在其中使用它们:

$newDiv = $dom->createElement('div');
$tmpDoc = new DOMDocument();
$tmpDoc->loadHTML($str);
foreach ($tmpDoc->getElementsByTagName('body')->item(0)->childNodes as $node) {
    $node = $dom->importNode($node, true);
    $newDiv->appendChild($node);
}

并作为方便的功能:

function appendHTML(DOMNode $parent, $source) {
    $tmpDoc = new DOMDocument();
    $tmpDoc->loadHTML($source);
    foreach ($tmpDoc->getElementsByTagName('body')->item(0)->childNodes as $node) {
        $node = $parent->ownerDocument->importNode($node, true);
        $parent->appendChild($node);
    }
}

然后,您可以简单地执行以下操作:

$elem = $dom->createElement('div');
appendHTML($elem, '<h1>Hello world</h1>');


 类似资料:
  • 问题内容: 当我尝试粘贴到HTML文本文件中时,我总是被踢出外壳。如何才能做到这一点?我首先需要使用一些JavaScript对其进行编码吗? 例: 编辑 我只在HTML中放入单引号,然后将整个内容都用双引号引起来,但仍然没有好处。外壳错误: 问题答案: 您需要删除或编码字符串中的控制字符。 例如,将您的文本粘贴到此处,然后编码为UTF-8 ECMAScript(表示javascript字符串)。

  • 我正在尝试插入一个HTML块到一个div。我想看看简单的JavaScript方式是否比使用jQuery更快。不幸的是,我忘了怎么用‘老办法’做这件事。:p 伙计们,我做错了什么? 编辑: 有人问jquery和普通js哪个更快,所以我编写了一个测试: http://jsperf.com/html-insertion-js-vs-jQuery 纯js快10%

  • 问题内容: 我有一些代码可以通过Ajax从服务器检索脚本化的svg图像。我可以将图像文本重新输入到浏览器中,但是我找不到将其插入到实际显示它的DOM中的方法。有人能帮忙吗?svg看起来像这样: 我尝试过各种东西。如果我这样做: 然后Opera和Chrome不执行任何操作,F / F抱怨“ [object XMLDocument]”。如果我将’responseXML’更改为’responseText

  • 问题内容: 我在golang中有一个模板,其中有一个看起来像这样的字符串: 我期望输出是这样的: 但是我看到的是这样的: 我还尝试插入一些JSON,但golang会转义字符并在不应该出现的地方添加类似内容。 如何在golang中插入HTML模板而不发生这种情况? 问题答案: 您应该将变量作为a 而不是作为a 传递: https://play.golang.org/p/QKKpQJ7gIs 如您所见

  • 问题内容: 我目前正在开发一个网站,我需要根据用户执行的操作来动态加载页面。 示例:如果用户单击“设置”按钮,则ajax函数将从外部页面加载该代码,并将其放入带有标签“设置”的div中。 这是我用来发出Ajax请求的代码: 这是第一个代码片段将ajax结果放入的位置: 该代码是从此处的函数调用的: 这是ajax函数将放入div 的html : 我想知道是否有一种方法也可以执行ajax函数返回的ja

  • 问题内容: 我是Elasticearch的新手,并且已经尝试了2天,将一些数据插入Elasticearch。我在Google上发现有很多页面可以帮助创建索引(我不清楚“ index”,换句话说是“插入”吗?)然后很多地方给出了curl命令,但我确实没有知道在哪里执行这些代码行以插入数据。例: 我正在使用Window 7,并且已安装Java并成功运行elasticsearch。任何人都可以向我展示有