Php - Dom,在 nodeValue 中插入 HTML_CODE

标签 php dom domdocument domxpath nodevalue

  $dom= new DOMDocument('1.0', 'iso-8859-1');
  $dom->loadHTML(' <html><body> <strong>SECOND</strong> </body></html>');

  $path = new DOMXPath($dom);

  foreach($path->query('body') as $found){
      $found->nodeValue  = ' <strong>FIRST</strong> '.$found->nodeValue;
  }

var_dump($dom->saveHTML()); //It shows <strong> as "&lt;strong&gt;"

本例中的“strong”标签将转换为文本。 实际上我需要在那里添加一个大的 HTML 代码。它的格式不正确,稍后会修复一些问题。

我该怎么做?

最佳答案

来自这个类似的问题:How to insert HTML to PHP DOMNode?

1) 创建辅助函数:

private static function __appendHTML($parent, $rawHtml) {
   $tmpDoc = new DOMDocument();
   $tmpDoc->loadHTML($rawHtml);
   foreach ($tmpDoc->getElementsByTagName('body')->item(0)->childNodes as $node) {
       $importedNode = $parent->ownerDocument->importNode($node, TRUE); 
       $parent->appendChild($importedNode);
   }
}

2) 使用助手将原始 html 插入到元素中:

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

关于Php - Dom,在 nodeValue 中插入 HTML_CODE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7336847/

相关文章:

java - org.w3c.dom 包的官方 Maven 发行版是什么?

javascript - 这些文档就绪类型之间有什么区别?何时使用它们?

javascript - 如何在 DOM 准备好之前加载 jQuery

javascript - 从 iFrame 内部加载的外部页面访问 IFrame 元素

php - 服务器不会创建 DOMDocument 实例

php - 无法在 DOMDocument 中加载 URL

javascript - 在 Google map 中标记多个位置

php - 如果不是特定用户则重定向 - wordpress

javascript - 如何将所有sessionStorage内容提交到PHP服务器

php - cUrl 正在返回 JSON 字符串,json_decode 没有将其解码为对象或数组