codeigniter,查看模板字符串到DomDocument操作

时间:2017-06-21 03:28:10

标签: php codeigniter domdocument

我在application \ views \ article.php

中有一个php文件

article.php内容:

<!DOCTYPE html>
<html prefix='og: http://ogp.me/ns#'>
<head>
    <title>test</title>
</head>
<body>
<div> test div1 </div>
<div> test div2 </div>
</body>
</html>

当我使用$ this-&gt; load-&gt; view()加载article.php模板并使用DomDocument来获取dom。

$html=$this->load->view('article','',TRUE);
$doc = new DomDocument;
$doc->loadHTML($html);      
echo $doc->saveXML($doc->getElementsByTagName('div')->item(0));
// or echo $doc->saveXML();

有错误消息: 消息:DOMDocument :: loadHTML():意外的结束标记:实体中的元,行:4

但是我用这个:

$html='<!DOCTYPE html>
    <html prefix=\'og: http://ogp.me/ns#\'>
    <head>
        <title>test</title>
    </head>
    <body>
    <div>   test div1 </div>
    <div> test div2 </div>
    <p>Directory </p>
    </body>
    </html>';

  $doc->loadHTML($html);         
  echo $doc->saveXML($doc->getElementsByTagName('div')->item(0));
  // or echo $doc->saveXML();

这是成功的。

gettype($ html)到两个$ html方法,都是字符串。

1 个答案:

答案 0 :(得分:1)

尝试使用

隐藏警告
SELECT idx FROM table1 WHERE type = 'typeA' LIMIT 3000

或者:

libxml_use_internal_errors(true);

警告是因为@$doc->loadHTML($html); 返回的HTML无效,loadHTML()会解析此问题,但会显示警告。

Manual