1

我正在编写一个导入 XML 的任务。调试是一件痛苦的事情,并且为 DOM 对象(如和列表)返回看似空的对象var_dump,看起来是这样的:print_rDOMElementDOMNodeList

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

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

我有哪些调试选项?

4

2 回答 2

2

对于使用 xml 输出的DomDocumentI。var_dump

var_dump($dom->saveXML());

对于 a DOMElement,我使用(如此处所示):

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

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

顺便说一句,报告没有显示 DomDocument 的内部结构(这里:反射)

于 2012-04-18T15:26:00.360 回答
1

解决方案:我写了自己的监控函数'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.
    }

希望这可以帮助你!

于 2013-03-11T14:17:01.817 回答