PHP SOAP XML Response преобразовать в DOM Document loadxml () - не работает, пусто - PullRequest
0 голосов
/ 13 августа 2010

У меня есть SOAP-ответ, который я хочу преобразовать в документ 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>  

в чем может быть причина?

1 Ответ

0 голосов
/ 13 августа 2010

Что говорит тебе, что оно пустое?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», как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...