我有这个代码:
$reader = new DOMDocument();
$reader->loadHTML($shell);
$xpath = new DomXPath($reader);
$xpath->registerNamespace('html','http://www.w3.org/1999/xhtml');
$res = $xpath->query('descendant-or-self::*[contains(@class,"content")]');
print_r($res);
$shell 只是一个包含以下 html 代码的变量:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en-us" />
<title>Hello World</title>
</head>
<body>
<div class="content">
Hello World!!
</div>
</body>
</html>
如果我是正确的 xpath 查询:
descendant-or-self::*[contains(@class,"content")]
应该获得具有“内容”类的 div。但是,当我打印数组时,我看到的只是一个空对象:
DOMNodeList Object
(
)
这是否意味着查询不起作用?DomXPath 查询语言是否与 SimpleXML Xpath 不同,因为该查询使用 SimpleXML?
如果它正在工作,我如何查看和修改匹配的节点?