@SilimAl
Telegram, VK, Instagram боты

Как получить доступ к значениям в теге?

Есть ответ API Почты России. SOAP в формате xml, с повторяющимися тегами . Загружаю каждое повторение в массив. Каждая ячейка имеет еще несколько тегов, информацию из которых хочу забрать. Подскажите, есть ли более простой вариант чем "перепоиск" каждого внутреннего тега?
Ячейка выглядит следующим образом:
<ns3:AddressParameters><ns3:DestinationAddress><ns3:Index>690034</ns3:Index><ns3:Description>Владивосток 34</ns3:Description></ns3:DestinationAddress><ns3:OperationAddress><ns3:Index>124575</ns3:Index><ns3:Description>Москва 575</ns3:Description></ns3:OperationAddress><ns3:MailDirect><ns3:Id>643</ns3:Id><ns3:Code2A>RU</ns3:Code2A><ns3:Code3A>RUS</ns3:Code3A><ns3:NameRU>Российская Федерация</ns3:NameRU><ns3:NameEN>Russian Federation</ns3:NameEN></ns3:MailDirect><ns3:CountryOper><ns3:Id>643</ns3:Id><ns3:Code2A>RU</ns3:Code2A><ns3:Code3A>RUS</ns3:Code3A><ns3:NameRU>Российская Федерация</ns3:NameRU><ns3:NameEN>Russian Federation</ns3:NameEN></ns3:CountryOper></ns3:AddressParameters><ns3:FinanceParameters><ns3:Payment>0</ns3:Payment><ns3:Value>0</ns3:Value><ns3:MassRate>33000</ns3:MassRate><ns3:InsrRate>0</ns3:InsrRate><ns3:AirRate>0</ns3:AirRate><ns3:Rate>0</ns3:Rate><ns3:CustomDuty>0</ns3:CustomDuty></ns3:FinanceParameters><ns3:ItemParameters><ns3:Barcode>12457517009036</ns3:Barcode><ns3:ValidRuType>false</ns3:ValidRuType><ns3:ValidEnType>false</ns3:ValidEnType><ns3:ComplexItemName>Посылка обыкновенная</ns3:ComplexItemName><ns3:MailRank><ns3:Id>0</ns3:Id><ns3:Name>Без разряда</ns3:Name></ns3:MailRank><ns3:PostMark><ns3:Id>2048</ns3:Id><ns3:Name>Нестандартная</ns3:Name></ns3:PostMark><ns3:MailType><ns3:Id>4</ns3:Id><ns3:Name>Посылка</ns3:Name></ns3:MailType><ns3:MailCtg><ns3:Id>3</ns3:Id><ns3:Name>Обыкновенное</ns3:Name></ns3:MailCtg><ns3:Mass>441</ns3:Mass></ns3:ItemParameters><ns3:OperationParameters><ns3:OperType><ns3:Id>1</ns3:Id><ns3:Name>Прием</ns3:Name></ns3:OperType><ns3:OperAttr><ns3:Id>1</ns3:Id><ns3:Name>Единичный</ns3:Name></ns3:OperAttr><ns3:OperDate>2017-12-26T16:00:32.000+03:00</ns3:OperDate></ns3:OperationParameters><ns3:UserParameters><ns3:SendCtg><ns3:Id>1</ns3:Id><ns3:Name>Население</ns3:Name></ns3:SendCtg></ns3:UserParameters>

Хотелось бы забирать значения через запрос: AddressParameters->DestinationAddress->Index

p.s.  Чувствую что решение на поверхности, но заклинило..
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@SilimAl Автор вопроса
Telegram, VK, Instagram боты
Если вдруг кому надо..

$xmlstr = $client->__doRequest($request, "https://tracking.russianpost.ru/rtm34", "getOperationHistory", SOAP_1_2);
$xml = simplexml_load_string($xmlstr);
$items = $xml->children('S', true)->Body->children('ns7', true)->getOperationHistoryResponse->children('ns3', true)->OperationHistoryData->historyRecord;

Дальше берем кому что нужно

$datetime = $item->OperationParameters->OperDate;
$nameoperattr = $item->OperationParameters->OperAttr->Name;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
JhaoDa
@JhaoDa
LaravelRUS Team
Облегчите себе жизнь — используйте https://github.com/appwilio/russianpost-sdk
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы