我试图验证以下HTML代码( 请注意IMG标记内的文本内容,其结构正确为标记,但无效为HTML):
<html>
<head>
</head>
<body>
<img src="./">
Some Text
</img>
</body>
</html>
使用PHP和DomDocument,我尝试用XPATH读取整个树:
$dom = new DOMDocument();
$dom->validateOnParse = 0;
$dom->loadHTML($htmlSource);
$xpath = new DOMXPath($dom);
$allNodes = $xpath->query("//node()");
我得到的结果:
/html
/html/head
/html/body
/html/body/#text[1]
/html/body/img
/html/body/#text[2]
显然与确切的HTML结构不匹配。 我期望看到的是
....
/html/body/img/#text
....
为什么XPATH会以这种方式解释树? 我怎样才能让它按照我的预期运作?