默认情况下,
Dom\HTMLDocument::createFromString
在命名空间中创建所有节点
http://www.w3.org/1999/xhtml
因此,如果你想通过XPath进行查询,你需要进行一个基于名称空间的查询,比如
$xpath->registerNamespace('xhtml', 'http://www.w3.org/1999/xhtml');
$divs = $xpath->query('//xhtml:div');
如果你想要无命名空间的HTML(如99%的用例),请通过
Dom\HTML_NO_DEFAULT_NS
到
Dom\HTML文档::createFromString
:
$doc = Dom\HTMLDocument::createFromString(
$html, Dom\HTML_NO_DEFAULT_NS);
$divs = $xpath->query('//div'); // returns 1 div