当我想测试php数组时,我使用以下代码

    print_r($myarray);

但我想看到一个物体的数据
我的目标是
    $xpath = new DOMXPath($doc);
    $myobject = $xpath->query('//*[ancestor-or-self::a]');

当我使用
    print_r($myobject);

我得到了输出
    DOMNodeList Object ( )

我想遍历这个对象的值来测试我的查询结果?

最佳答案

domnodelist是一个有趣的对象,使用print_rvar_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中的“节点”,在添加将它们转换为新的数据结构。

07-24 17:04