PHP HTML DomDocument getElementById问题
这里的
PHP解析有点新,但我似乎无法让
PHP的DomDocument返回显然是可识别的节点.加载的HTML将来自’net,因此无法保证XML合规性,但我尝试以下方法:
<?php header("Content-Type: text/plain"); $html = '<html><body>Hello <b id="bid">World</b>.</body></html>'; $dom = new DomDocument; $dom->preserveWhiteSpace = false; $dom->validateOnParse = true; /*** load the html into the object ***/ $dom->loadHTML($html); var_dump($dom); $belement = $dom->getElementById("bid"); var_dump($belement); ?> 虽然我没有收到任何错误,但我只收到以下输出: object(DOMDocument)#1 (0) { } NULL 我是否应该无法查找< b>标签,因为它确实有一个ID?
The Manual解释了原因:
无论如何,请使用有效的HTML&提供DTD. 快速修复: >拨打$dom-> validate();并忍受错误(或修复它们),之后您可以使用$dom-> getElementById(),无论出于某种原因的错误. . $dom = new DOMDocument(); $html ='<html> <body>Hello <b id="bid">World</b>.</body> </html>'; $dom->validateOnParse = true; //<!-- this first $dom->loadHTML($html); //'cause 'load' == 'parse $dom->preserveWhiteSpace = false; $belement = $dom->getElementById("bid"); echo $belement->nodeValue; 在这里输出’世界’. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |