2012-04-18 49 views
1

我正在編寫導入XML的任務。調試是一個痛苦都var_dump和DOM對象像DOMElementDOMNodeList列表中,顯得那麼print_r返回看似空無一物:如何調試看似空DOM對象?

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

但他們不是空的,因爲我可以讀出值。

什麼樣的調試選項有我呢?

+0

升級到PHP 5.4,你會得到更多的信息,你的描述是隻與舊的PHP 5.3版本的情況。另請參見[在PHP中調試DOMDocument對象](http://stackoverflow.com/questions/684227/debug-a-domdocument-object-in-php)和[PHP XML如何輸出好格式](http:// stackoverflow.com/q/8615422/367456)。 – hakre 2012-05-13 15:05:59

回答

2

有關使用xml輸出一個DomDocumentvar_dump

var_dump($dom->saveXML()); 

對於DOMElement,我用(as seen here):

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

DOMNodeList,我不知道。也許你必須附加/附加到DomDocument,然後var_dump它。

而且順便說一句,一個DOMDocument沒有展示的內部是reported (here: Reflection)

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. 
    } 

希望能幫助你寫自己的監控功能!