如何调试看似空的DOM对象?

时间:2012-04-18 15:06:07

标签: php xml dom xml-parsing symfony-1.4

我正在编写一个导入XML的任务。调试很痛苦,因为var_dumpprint_r都会为DOMElementDOMNodeList列表等DOM对象返回看似空的对象,这样看:

object(DOMElement)#330 (0) {}
object(DOMNodeList)#335 (0) {}

但是他们不是空的,因为我可以阅读这些值。

我改为使用哪些调试选项?

2 个答案:

答案 0 :(得分:2)

对于使用xml输出的DomDocument I var_dump

var_dump($dom->saveXML());

对于DOMElement,我使用(as seen here):

var_dump($domElement->ownerDocument->saveXML($domElement));

DOMNodeList,我不知道。也许你必须将它附加/附加到DomDocument,然后var_dump它。

顺便说一下,没有显示DomDocument的内部结构是reported (here: Reflection)

答案 1 :(得分:0)

解决方案:我编写了自己的监控功能'dom_test'

    function dom_test($DOM) {
      echo '<h1>'.get_class($DOM).'</h1>';
      // easiest way to traverse:
      echo 'LENGTH: '. @$DOM->length ."\n"; // if NodeList
      echo 'TAG: '. @$DOM->tagName ."\n"; // if Element
      echo 'CHILDS: '. @$DOM->childNodes->length ."\n"; // etc.
    }
希望这可以帮到你!