当我想测试php数组时,我使用以下代码
print_r($myarray);
但我想看到一个物体的数据
我的目标是
$xpath = new DOMXPath($doc);
$myobject = $xpath->query('//*[ancestor-or-self::a]');
当我使用
print_r($myobject);
我得到了输出
DOMNodeList Object ( )
我想遍历这个对象的值来测试我的查询结果?
最佳答案
domnodelist是一个有趣的对象,使用print_r
或var_dump
不会获得太多信息。
有很多方法可以查看domnodelist对象的数据。下面是一个例子:
$xpath = new DOMXpath($dom);
$dom_node_list = $xpath->query($your_xpath_query);
$temp_dom = new DOMDocument();
foreach($dom_node_list as $n) $temp_dom->appendChild($temp_dom->importNode($n,true));
print_r($temp_dom->saveHTML());
(当然,如果要处理xml,请使用savexml而不是savehtml。)
domnodelist可以像数组一样迭代。如果要从domnodelist对象中提取数据并将其放入不同的数据结构(如数组或stdclass对象),则只需遍历domnodelist中的“节点”,在添加将它们转换为新的数据结构。