How do I ignore CDATA tags?

I am trying to make an html parser but when I load the html I get warnings like this

Warning: DOMDocument :: loadHTML () [domdocument.loadhtml]: Invalid char in CDATA 0x1C in Entity, line: 1302

Here is the code I am using

class Parser
{
public $url=null;
public $html=null;
public $tidy=null;
public $head=null;
public $head_xpath=null;


function __construct($url){
    $this->url=$url;
    $this->html=file_get_contents($this->url);
    $this->tidy=tidy_parse_string($this->html);
    $this->head=new DOMDocument();
    $this->head->loadHTML($this->tidy->head());
    $this->head_xpath= new DOMXPath($this->head);

}
}

$x=new Parser("http://www.guardian.co.uk/politics/2012/mar/24/vince-cable-coalition-banking-row");

      

I searched and found the LIBXML_NOCDATA constant, but I don't know how to set it. So how could I ignore CDATA completely?

+3


source to share


1 answer


$this->html = preg_replace('~//\s*?<!\[CDATA\[\s*|\s*//\]\]>~', '', $this->html);

      



should work but haven't tested it.

0


source







All Articles