Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обработка входящего XML
Форумы портала PHP.SU » » XML и его обработка » Обработка входящего XML

Страниц (1): [1]
 

1. Cheponya - 15 Марта, 2016 - 22:48:59 - перейти к сообщению
Всем привет!
С XML знаком только по наслышке, последние пару часов пытаюсь нагуглить инфу но ничего не выходит.
Суть:
Получаю ответ от сервера(работаю с API). Моих скудных знаний хватило лишь на вывод всего этого добра одним куском....вопрос..., как обрабатывать эти входящие данные.
Т.е. допустим приходят данные, по документации я знаю в каком виде они вроде в XML должны быть:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <answer>
  3.   <error>0</error>
  4.   <cities>
  5.     <city>
  6.       <name>"Мичуринец", Московская обл.</name>
  7.       <code_id>882835</code_id><
  8.      is_courier>1</is_courier>
  9.       <is_filial>0</is_filial>
  10.       <oblast_code>000000001</oblast_code>
  11.       <district_code/>
  12.       <kladr_code>1603700004500</kladr_code>
  13.     </city>
  14.     <city>
  15.       <name>19 Партсъезда, Волгоградская обл.</name>
  16.       <code_id>778412</code_id>
  17.       <is_courier>1</is_courier>
  18.       <is_filial>0</is_filial>
  19.       <oblast_code>000000022</oblast_code>
  20.       <district_code/>
  21.     </city>
  22.     <city>
  23.       <name>8 Марта, Башкортостан респ.</name>
  24.       <code_id>856139</code_id>
  25.       <is_courier>1</is_courier>
  26.       <is_filial>0</is_filial>
  27.       <oblast_code>000000049</oblast_code>
  28.       <district_code/>
  29.     </city>
  30.     <city>
  31.       <name>Tвepь, Москва</name>
  32.       <code_id>272420</code_id>
  33.       <is_courier>1</is_courier>
  34.       <is_filial>0</is_filial>
  35.       <oblast_code>000000092</oblast_code>
  36.       <district_code/>
  37.     </city>
  38.     ............
  39.     ............
  40.     ............
  41.    
  42.   </cities>
  43. </answer>
  44.  

по факту это просто массив данных никакими тегами не разделенный(ну на выходе у меня)

Как мне выбрать какое то определенное значение из этого массива? по каким ключам бить? Если можно краткий пример, либо ссылочку туда где именно об этом почитать можно... Правда конкретно по этому вопросу ничего не нашел.
2. Viper - 15 Марта, 2016 - 23:21:54 - перейти к сообщению
simplexml
xpath
3. Cheponya - 15 Марта, 2016 - 23:46:52 - перейти к сообщению
Viper читал час назад о нем, ничего не понял толком, пришел сюда)
Сейчас все еще раз перекопал, все просто)
Результат есть....
PHP:
скопировать код в буфер обмена
  1. echo $cities->cities->city->name;

Выводит нормально:
"Мичуринец", Московская обл.
Пошел все тонкости разгребать)
Спасибо большое!

 

Powered by ExBB FM 1.0 RC1