#php #xml #soap
#php #xml #soap
Вопрос:
После того, как я целый день бился головой о стену, я просто думаю, что мне нужна помощь для этого. Я получаю следующий ответ от вызова soap :
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SearchBrochuresResponse xmlns="http://services.iceportal.com/service">
<SearchBrochuresResult>
<pageNumber>0</pageNumber>
<brochures>
<SearchBrochure>
<iceID>10427</iceID>
<city>Acapulco</city>
</SearchBrochure>
</brochures>
</SearchBrochuresResult>
</SearchBrochuresResponse>
</soap:Body>
</soap:Envelope>
Я перепробовал все, что смог найти по этому вопросу в stackoverflow и во всех других источниках, которые я нашел, но я не смог получить доступ к iceID, в основном моя цель — ввести в переменную php значение узла iceID.
Большое спасибо за вашу помощь.
Ответ №1:
Предположим, что ваши XML-данные находятся в переменной $data
, из которой вы могли бы создать простой XML-объект, а затем получить доступ к его узлам следующим образом (пример для получения iceID
):
$xml = simplexml_load_string($data);
$iceID = (string)$xml->children('soap', true)
->Body->children()
->SearchBrochuresResponse
->SearchBrochuresResult
->brochures
->SearchBrochure
->iceID;
Комментарии:
1. Безупречно!! Большое спасибо, приятель, ты спас меня от того, чтобы разбить голову о мой стол!! Еще раз спасибо!!
Ответ №2:
Вы могли бы изучить XPath, метод, используемый для навигации и выбора частей XML-документа. Википедия на XPath
Если вам нужна дополнительная помощь, пожалуйста, отправьте более конкретный вопрос. Что вы пробовали? Вам нужно только извлечь это конкретное значение?
Комментарии:
1. Да, я пробовал способ XPath, но не смог заставить его работать.