2010-08-13 76 views
0

我有一個SOAP響應,我想要轉換爲DOM文檔。我正在使用loadxml(),但它返回一個空對象。PHP SOAP XML響應轉換爲DOM文檔loadxml() - 不工作,空

<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:getResponse xmlns:ns2="http://api.sponsoredlistings.ask.com/api/v5/"><rval xmlns="http://api.sponsoredlistings.ask.com/api/v5/"><ns2:totalNumEntries>6</ns2:totalNumEntries><ns2:entries><ns2:id>3000063</ns2:id><ns2:name>QA_Team_1</ns2:name><ns2:status>ACTIVE</ns2:status><ns2:servingStatus>Inactive</ns2:servingStatus><ns2:startDate>20100730</ns2:startDate><ns2:endDate>20991231</ns2:endDate><ns2:budget><ns2:period>MONTHLY</ns2:period><ns2:amount><ns2:amount>3333.3333</ns2:amount></ns2:amount><ns2:deliveryMethod>STANDARD</ns2:deliveryMethod></ns2:budget><ns2:biddingStrategy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ManualCPC"/><ns2:adServingOptimizationStatus>OPTIMIZE</ns2:adServingOptimizationStatus><ns2:stats><ns2:network>ALL</ns2:network><ns2:statsType>Stats</ns2:statsType></ns2:stats><ns2:statusReason>FutureDT</ns2:statusReason></ns2:entries><ns2:entries><ns2:id>3000064</ns2:id><ns2:name>Sample Campaign for Itay</ns2:name><ns2:status>ACTIVE</ns2:status><ns2:servingStatus>Inactive</ns2:servingStatus><ns2:startDate>20100730</ns2:startDate><ns2:endDate>20991231</ns2:endDate><ns2:budget><ns2:period>MONTHLY</ns2:period><ns2:amount><ns2:amount>3333.3333</ns2:amount></ns2:amount><ns2:deliveryMethod>STANDARD</ns2:deliveryMethod></ns2:budget><ns2:biddingStrategy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ManualCPC"/><ns2:adServingOptimizationStatus>OPTIMIZE</ns2:adServingOptimizationStatus><ns2:stats><ns2:network>ALL</ns2:network><ns2:statsType>Stats</ns2:statsType></ns2:stats><ns2:statusReason>FutureDT</ns2:statusReason></ns2:entries><ns2:entries><ns2:id>3000065</ns2:id><ns2:name>Sample Campaign API Report Testing 1</ns2:name><ns2:status>ACTIVE</ns2:status><ns2:servingStatus>Inactive</ns2:servingStatus><ns2:startDate>20100802</ns2:startDate><ns2:endDate>20991231</ns2:endDate><ns2:budget><ns2:period>MONTHLY</ns2:period><ns2:amount><ns2:amount>3333.3333</ns2:amount></ns2:amount><ns2:deliveryMethod>STANDARD</ns2:deliveryMethod></ns2:budget><ns2:biddingStrategy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ManualCPC"/><ns2:adServingOptimizationStatus>OPTIMIZE</ns2:adServingOptimizationStatus><ns2:stats><ns2:network>ALL</ns2:network><ns2:statsType>Stats</ns2:statsType></ns2:stats><ns2:statusReason>FutureDT</ns2:statusReason></ns2:entries><ns2:entries><ns2:id>3000066</ns2:id><ns2:name>CampaignSridRevewSB</ns2:name><ns2:status>ACTIVE</ns2:status><ns2:servingStatus>Active</ns2:servingStatus><ns2:startDate>20100810</ns2:startDate><ns2:endDate>20991231</ns2:endDate><ns2:budget><ns2:period>DAILY</ns2:period><ns2:amount><ns2:amount>10000.0</ns2:amount></ns2:amount><ns2:deliveryMethod>STANDARD</ns2:deliveryMethod></ns2:budget><ns2:biddingStrategy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ManualCPC"/><ns2:adServingOptimizationStatus>OPTIMIZE</ns2:adServingOptimizationStatus><ns2:stats><ns2:network>ALL</ns2:network><ns2:statsType>Stats</ns2:statsType></ns2:stats></ns2:entries><ns2:entries><ns2:id>3000067</ns2:id><ns2:name>Campaign #3000067</ns2:name><ns2:status>ACTIVE</ns2:status><ns2:servingStatus>Active</ns2:servingStatus><ns2:startDate>20100811</ns2:startDate><ns2:endDate>20991231</ns2:endDate><ns2:budget><ns2:period>DAILY</ns2:period><ns2:amount><ns2:amount>10000.0</ns2:amount></ns2:amount><ns2:deliveryMethod>STANDARD</ns2:deliveryMethod></ns2:budget><ns2:biddingStrategy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ManualCPC"/><ns2:adServingOptimizationStatus>OPTIMIZE</ns2:adServingOptimizationStatus><ns2:stats><ns2:network>ALL</ns2:network><ns2:statsType>Stats</ns2:statsType></ns2:stats></ns2:entries><ns2:entries><ns2:id>3000068</ns2:id><ns2:name>Campaign #3000068</ns2:name><ns2:status>ACTIVE</ns2:status><ns2:servingStatus>Active</ns2:servingStatus><ns2:startDate>20100811</ns2:startDate><ns2:endDate>20991231</ns2:endDate><ns2:budget><ns2:period>DAILY</ns2:period><ns2:amount><ns2:amount>10000.0</ns2:amount></ns2:amount><ns2:deliveryMethod>STANDARD</ns2:deliveryMethod></ns2:budget><ns2:biddingStrategy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ManualCPC"/><ns2:adServingOptimizationStatus>OPTIMIZE</ns2:adServingOptimizationStatus><ns2:stats><ns2:network>ALL</ns2:network><ns2:statsType>Stats</ns2:statsType></ns2:stats></ns2:entries></rval></ns2:getResponse></S:Body></S:Envelope> 

可能是什麼原因?

回答

0

什麼告訴你它是空的? DOMDocument :: loadxml()將返回false它有一個錯誤,而不是一個空對象。

無論如何,當我運行這段代碼($ DOC爲您發佈的XML英里長的單行):

$dom = new DOMDocument(); 
$dom->loadXML($doc); 
$node_list = $dom->getElementsByTagName('totalNumEntries'); 
$node = $node_list->item(0); 
echo $node->nodeValue; 

輸出爲「6」,符合市場預期。

+0

感謝您的提示,我用的var_dump打印的內容: 這的var_dump的結果是: 對象(DOM文檔)#17(0){ } – 2010-08-13 19:17:59

+0

Sry基因遲到的答案,但我絆倒這個問題。這是您將始終爲DOM對象獲取的默認輸出,即使該對象具有內容。這是因爲,內容被隱藏到php腳本端。您將不得不使用對象方法來獲取正確的狀態信息。 – Ron 2012-11-14 15:18:24