2016-02-10 2 views
0

Я вызываю некоторые веб-службы, а затем вытягиваю данные из ответов XML. Большинство из них прекрасны, но одна из служб позволяет мне выполнить некоторый SQL для получения дополнительных данных, а макет этого ответа сильно отличается от остальных. Я не могу изменить службы, поэтому просто нужно знать, как получить данные;PHP пытается проанализировать некоторые XML

The data I am getting back is as follows, from a 

Print_r; 

StdClass объект ([Схема] => StdClass Объект ([Элемент] => StdClass объект ([ComplexType] => StdClass объект ([выбор] => StdClass Объект ([Элемент] => StdClass объект ([complexType] => stdClass Object ([sequence] => stdClass Object ([element] => Array ([0] => stdClass Object ([simpleType] => stdClass Object ([ограничение] => stdClass Object ([maxLength] => StdClass Object ([ограничение] => stdClass Object ([maxLength] =>))) [3] => [4] => => [5] => stdClass Object ([simpleType] => stdClass Object ([ограничение] => stdClass Object ([maxLength] =>))) [6] => stdClass Object ([simpleType] => stdClass Object ([ограничение] => stdClass Object ([maxLength] =>))) [7] => [8] => stdClass Object ([простой Тип] => stdClass Object ([ограничение] => stdClass Object ([maxLength] =>))))))))))) [diffgram] => stdClass Object ([VTSData] => stdClass Object ([Таблица] => Array ([0] => stdClass Object ([PreferredFieldManagerID] => L005 [Priority] => 1 [AreaOfExpertiseID] => 1 [X] => 72958 [Y] => 5225329 [District] => PO BOX 15 [Агент] => FLS-AUTO-UPLOAD [Условие] => 0 [EquipmentName] => 11/02/2016) [1] => stdClass Object ([PreferredFieldManagerID] => L005 [Приоритет] => 1 [ AreaOfExpertiseID] => 1 [X] => 72958 [Y] => 5225329 [District] => PO BOX 15 [Условие] => 0 [EquipmentName] => 11/02/2016) [2] => stdClass Object ([PreferredFieldManagerID] => L005 [Приоритет] => 1 [AreaOfExpertiseID] => 1 [X] => 72958 [Y] => 5225329 [District] => PO BOX 15 [Условие] => 0 [EquipmentName] => 11/02/2016) [3] => stdClass Object ([PreferredFieldManagerID] => L005 [Приоритет] => 1 [AreaOfExpertiseID] => 1 [X] => 72958 [Y] => 5225329 [District] => PO BOX 15 [Условие] => 0 [EquipmentName] => 11/02/2016)))))

и элементы, которые мне нужны, это те, которые называются [X], [Y], [AreaofExpertiseId] и т. Д. ... Пробные

echo($result -> AreaOfExpertiseID); 
    echo($result -> X); 
    echo($result -> Y); 

... и т.д., какой синтаксис работает и для других моих результате XMLs ...

, но они не в состоянии с

Undefined property: stdClass::$AreaOfExpertiseID in ...etc... 

Пожалуйста, кто может помочь?

Phil

+0

, что ответ не является XML, вы можете оставить фактический ответ, а не то, что вы получите от print_r – RamRaider

+0

, как вы можете видеть, у вас есть вложенные объекты, а это значит, что вам нужно сделать так: $ result-> object1- > объект -> ...... object-> X; – FareedMN

ответ

0

Если print_r вы показываете это содержимое $result то данные вам нужно, в

$result->diffgram->VTSData->Table 

Это будет массив объектов, которые вы можете перебрать и получить то, что ты ищешь.

$table = $result->diffgram->VTSData->Table; 
foreach ($table as $item) { 
    echo $item->AreaOfExpertiseID, $item->X, $item->Y; 
    // or whatever you need to do with them 
} 
Смежные вопросы