3
이 나는 HTML 파서를 만들려고 노력하고있어,하지만 때 내가 얻을 HTML을로드이CDATA 태그를 무시하는 방법?
경고와 같은 경고 : DOMDocument를 :: loadHTML() [domdocument.loadhtml] : 엔티티에 CDATA가 0x1c에 잘못된 문자, 라인 : 1302
여기에 내가 주변 검색과 LIBXML_NOCDATA 상수 발견
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");
를 사용하는 코드입니다,하지만 난 그것을 설정하는 방법을 모르겠어요. 그래서 어떻게 CDATA를 완전히 무시할 수 있습니까?
그리고 나는 맹목적으로 내용을 바꾸는 것이 그것이 어떤 기사에있을 수도 있기 때문에 옵션이 아니라고 생각합니까? –
@Artjom Kurapov 나는 cdata 태그를 str_replace로 대체하려고 시도했지만 여전히 경고를 주었고 어떤 사람들은 (공백이 많은) nope
xml에서 문제가되는 행을 게시 할 수 있습니까? 그것이 잘 형성된 cdata이라면 그 오류를 던져서는 안됩니다. 문자 인코딩 문제가있는 것 같습니다. –