找回密码
 注册

[PHP] PHP获取DOMElement的innerHTML和outerHTML

php 发表于 2015/10/30 01:48 | 显示全部楼层 |阅读模式
PHP DOMDocument得到的DOMElement对象无法直接获取HTML/XML元素节点的innerHTML和outerHTML,DOMElement继承自DOMDode,只能获取nodeValue或textContent,是去除标签后的纯文本的内容,而不是代码。
想要通过PHP的DOMDocument类来获取元素节点的innerHTML和outerHTML,可以使用以下代码。
  1. <?php
  2.         /*
  3.          * PHP获取DOMDocument DOMNode的innerHTML和outerHTML
  4.          * @author 吴先成 www.wuxiancheng.cn
  5.         */
  6.         $dom = new DOMDocument('1.0','UTF-8');
  7.         $dom->loadHTML('<html><body><div><p>p1</p><p>p2</p></div></body></html>');        
  8.         $node = $dom->getElementsByTagName('div')->item(0);        
  9.         $outerHTML = $node->ownerDocument->saveHTML($node);        
  10.         $innerHTML = '';
  11.         foreach ($node->childNodes as $childNode){
  12.                 $innerHTML .= $childNode->ownerDocument->saveHTML($childNode);
  13.         }
  14.         echo '<h2>outerHTML: </h2>';
  15.         echo htmlspecialchars($outerHTML);
  16.         echo '<h2>innerHTML: </h2>';
  17.         echo htmlspecialchars($innerHTML);        
  18. ?>
复制代码
注:outerHTML是指元素本身及其子元素的所有代码,innerHTML是指元素除去其自身以外的代码。
比如对于以下代码中的div元素,它的outerHTML就是以下代码,
  1. <div>
  2.         <p>1</p>
  3.         <p>2</p>
  4. </div>
复制代码
而innerHTML则是
  1.         <p>1</p>
  2.         <p>2</p>
复制代码

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表