Разобрать ответ Nusoap PHP

<s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:body>
<providersearchbycityresponse xmlns="https://ccrrwsqa.naccrra.org">
<?xml version="1.0" encoding="utf-16"?>
<Providers>
  <Provider>
   <NameID>
     <![CDATA[657]]>
   </NameID>
   <ParentID />
   <OrganizationName>
     <![CDATA[Early Childhood Training Network]]>
   </OrganizationName>
   <PhoneNumber>
     <![CDATA[(605) 773-2169]]>
   </PhoneNumber>
 </Provider>
</Providers>
</providersearchbycityresponse>
</s:body>
</s:envelope>

Я получаю выше XML в виде строки из вызова API, но я не нахожу способа, как я могу проанализировать приведенный выше ответ, чтобы получить данные всех поставщиков. полный ответ здесь


person Poonam Ghangas    schedule 06.04.2015    source источник
comment
посмотрите simpleXML библиотеку php ... php.net/manual/en/simplexml.examples. php   -  person Nishant Solanki    schedule 06.04.2015
comment
У меня ничего не работает. Я добавил полный ответ на pastebin. Пожалуйста помоги.   -  person Poonam Ghangas    schedule 06.04.2015
comment
Во время синтаксического анализа я получаю пустой объект SimpleXMLElement ().   -  person Poonam Ghangas    schedule 06.04.2015
comment
Он может выглядеть пустым, если print_r или var_dump. используйте его метод ::asXML(), чтобы действительно увидеть, что там находится. XML обычно не изменяется, только вы его загружаете, если XML не поврежден, но тогда вы видели в отчете об ошибках, если он активирован. В противном случае это первый шаг, который необходимо сделать перед разработкой: Как получать полезные сообщения об ошибках в PHP?.   -  person hakre    schedule 06.04.2015
comment
Что касается пустоты, см. Также SimpleXML и print_r () - почему это пусто? - В руководстве по PHP есть вводная глава о том, как обрабатывать XML с помощью SimpleXML: Базовое использование SimpleXML   -  person hakre    schedule 06.04.2015
comment
$ myxmlresponse = $ client- ›responseData; $ xml = новый SimpleXMLElement ($ myxmlresponse); $ string = $ xml- ›asXML (); $ xml = simplexml_load_string ($ строка); print_r ($ xml); Это код PHP, который я использую. все еще не получается получить данные в виде массива или объекта ??   -  person Poonam Ghangas    schedule 06.04.2015
comment
Нет, не будешь. Как я уже писал, использование print_r в SimpleXMLelement не работает. Представьте, что у вас есть драйвер базы данных, который позволяет вам подключаться к базе данных. Затем вы используете print_r для объекта подключения. Ожидаете ли вы, что он покажет вам все данные, которые есть в базе данных? Скорее всего, нет, это даст вам - если вообще - очень ограниченную информацию. То же самое и с SimpleXMLElement: вместо этого вы должны использовать $xml->asXML('php://output');, чтобы увидеть, какой XML содержит документ. Затем вы получаете доступ к документу, как описано в руководстве по базовому использованию PHP, которое я указал выше.   -  person hakre    schedule 06.04.2015