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 response
Форумы портала PHP.SU » » XML и его обработка » Парсинг xml response

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

1. RSlab - 26 Февраля, 2014 - 14:01:15 - перейти к сообщению
есть ответ от сервера в XML:
Спойлер (Отобразить)


Стоит задача распарсить этот ответ до значений exp, name, lvl, room, dmgi и тд.
Если бы данные передавались в виде <lvl><lvl> и тд, то было бы понятно, но то, что пришло меня смутило. Пробовал вынимать строку - эмоций так же ноль.
Что можно сделать в этом случае?
2. and_07 - 26 Февраля, 2014 - 14:39:20 - перейти к сообщению
я бы сделал с помощью xpath (но можно и регуляркой)
3. Viper - 26 Февраля, 2014 - 20:39:57 - перейти к сообщению
регуляркой имхо проще будет
4. Мелкий - 26 Февраля, 2014 - 20:49:50 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?
  2. $string = <<<XML
  3. <root>
  4.  <u id="120"
  5.         exp="1821506"
  6.         name=""
  7.         lvl="36"
  8.         room="1"
  9.         bd="10959561"  
  10.         loc="6"
  11.         end="171"
  12.         luck="95"
  13.         endi="322"
  14.         lucki="57"
  15.         dmgi="2858"  
  16.         l_t="4"
  17.         loot="0"
  18.         a1="4"
  19.         a2="5"
  20.         a3="3"
  21.         a4="3"
  22.         a5="3"  
  23.         d1="0"
  24.         d2="47"
  25.         d3="8"
  26.         d4="528"
  27.         d5="414"
  28.         d6="420"
  29.         d7="405"
  30.         d8="641" />
  31. </root>
  32. XML;
  33.  
  34. $xml = simplexml_load_string($string);
  35. $rAttributes = $xml->u->attributes();
  36. echo $rAttributes->lvl;
  37.  
5. RSlab - 27 Февраля, 2014 - 05:09:46 - перейти к сообщению
Мелкий пишет:
PHP:
скопировать код в буфер обмена
  1. <?
  2. $string = <<<XML
  3. <root>
  4.  <u id="120"
  5.         exp="1821506"
  6.         name=""
  7.         lvl="36"
  8.         room="1"
  9.         bd="10959561"  
  10.         loc="6"
  11.         end="171"
  12.         luck="95"
  13.         endi="322"
  14.         lucki="57"
  15.         dmgi="2858"  
  16.         l_t="4"
  17.         loot="0"
  18.         a1="4"
  19.         a2="5"
  20.         a3="3"
  21.         a4="3"
  22.         a5="3"  
  23.         d1="0"
  24.         d2="47"
  25.         d3="8"
  26.         d4="528"
  27.         d5="414"
  28.         d6="420"
  29.         d7="405"
  30.         d8="641" />
  31. </root>
  32. XML;
  33.  
  34. $xml = simplexml_load_string($string);
  35. $rAttributes = $xml->u->attributes();
  36. echo $rAttributes->lvl;
  37.  


Огромное спасибо, как раз то, что нужно.
Как доберу сообщений тыкну спасибкуУлыбка

 

Powered by ExBB FM 1.0 RC1