Извлечение данных из XML с помощью Simplexml

Извлечение данных из XML с помощью Simplexml

26.02.2016 11:46:24 Просмотров 53 Источник

Я пытаюсь извлечь значения из ответа XML SOAP работая с Symfony2 и php 5.6 и я прочитал документ и попробовал много методов но все еще не могу получить данные

Вот моя строка XML

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
 <S:Body>
  <ns2:provisioningWithDataResponse xmlns="URL" xmlns:ns2="http://URL">
    <ns2:provisioningReturn>
        <date>2016-02-26T09:17:49.648+01:00</date>
        <messageId>642176832</messageId>
        <returnCode>1</returnCode>
        <returnMessage>Code: 6 Message: SQL query failed </returnMessage>
     </ns2:provisioningReturn>
  </ns2:provisioningWithDataResponse>
</S:Body>
</S:Envelope>

Я пробовал это, чтобы получить данные и сохранить их в сеансе, но кажется, что $xmlвсегда пуст, так как я всегда получаю это сообщение об ошибке

Обратите внимание: попытка получить свойство не-объекта

Код:

$xml=simplexml_load_string($order_return);
$session->set("Respense",(string)$xml->children('ns2',true)->provisioningReturn[0]->returnMessage);

Любая идея, как я могу получить значение returnMessage, например ? спасибо

У вопроса есть решение - Посмотреть?

Ответы - Извлечение данных из XML с помощью Simplexml / Retrieve DATA from XML with Simplexml

Является ответом!
Fancy Windsor

26.02.2016 12:21:21

попробуйте код ниже:

(string)
// $xml is the node: S:Envelope
$xml->children('S', true) // => node: S:Body
    ->children('ns2', true) // => node: ns2:provisioningWithDataResponse
    ->children('ns2', true) // => ns2:provisioningReturn
    ->children() 
    ->returnMessage
https://stackoverflow.com/questions/35647165/retrieve-data-from-xml-with-simplexml/35647780#comment58976131_35647780
Это сработало, спасибо .. Еще один вопрос, почему вы поставили один узел S и два узла ns2 ?
https://stackoverflow.com/questions/35647165/retrieve-data-from-xml-with-simplexml/35647780#comment58976388_35647780
смотрите комментарии
https://stackoverflow.com/questions/35647165/retrieve-data-from-xml-with-simplexml/35647780#comment58976632_35647780
Спасибо.. теперь все это имеет смысл!
Закрыть X