Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.03.2010, 10:52
TopIce вне форума Посмотреть профиль Отправить личное сообщение для TopIce Найти все сообщения от TopIce
  № 1  
Ответить с цитированием
TopIce

Регистрация: Mar 2010
Сообщений: 20
По умолчанию Помогите разобрать XML

Сейчас разбираю ответы от АПИ

Код:
<restResponse object="user" method="getInfoAction">
<id>12313546</id>
<fullName>Василий Пупкин</fullName>
<nick>Vasyok</nick>
<isOnline>yes</isOnline>
<type>student</type>
<smallAvatar>http://scribbler.ru/uploaded/avatar/user/12313546/small.jpg</smallAvatar>
<mediumAvatar>http://scribbler.ru/uploaded/avatar/user/12313546/medium.jpg</mediumAvatar>
<userPic>http://scribbler.ru/uploaded/avatar/user/12313546/big.jpg</userPic>
</restResponse>
следующим образом

Код AS3:
      trace(service.lastResult.restResponse)
      trace(service.lastResult.restResponse.id)
      trace(service.lastResult.restResponse.userPic)
      trace(service.lastResult.restResponse.fullName)
      trace(service.lastResult.restResponse.nick)
      trace(service.lastResult.restResponse.isOnline)
      trace(service.lastResult.restResponse.type)
А дальше например вот так:

Код AS3:
      img1.source=service.lastResult.restResponse.userPic
      fullName1.text=service.lastResult.restResponse.fullName
Но что делать если приходит многоуровневый ответ?

Код:
Ответ:
<restResponse object="photo" method="getInbox">

    <item index="0">
        <id>232</id>
        <title>Альбом1</title>
        <description>описание альбома 1</description>
        <createdOn>2009-08-11 15:23:03</createdOn>
        <updatedOn>2009-08-11 15:23:03</updatedOn>
        <cover>http://scribbler.ru/uploaded/photo/1/2.jpg</cover>
        <photosCount>10</photosCount>
    </item>

    <item index="1">
        <id>233</id>
        <title>Альбом2</title>
        <description>описание альбома 2</description>
        <createdOn>2009-08-11 15:23:03</createdOn>
        <updatedOn>2009-08-11 15:23:03</updatedOn>
        <cover>http://scribbler.ru/uploaded/photo/1/45.jpg</cover>
        <photosCount>45</photosCount>
    </item>

...

</restResponse>
причем количество альбомов заранее не известно

Старый 18.03.2010, 11:15
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 2  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
for each - например

Старый 18.03.2010, 11:18
TopIce вне форума Посмотреть профиль Отправить личное сообщение для TopIce Найти все сообщения от TopIce
  № 3  
Ответить с цитированием
TopIce

Регистрация: Mar 2010
Сообщений: 20
я в первый раз flex включил 5 дней назад, можно подробнее?

Старый 18.03.2010, 11:47
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 4  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
как вариант:
сделайте массив, items например, для хранения данных из <restResponse />.
по полученному XML пройдитесь циклом и все что в <item></item> сохраняйте в массив, а потом у Вас будет
Код AS3:
items[номер альбома].то что надо выдернуть из полученных данных

Старый 18.03.2010, 12:03
TopIce вне форума Посмотреть профиль Отправить личное сообщение для TopIce Найти все сообщения от TopIce
  № 5  
Ответить с цитированием
TopIce

Регистрация: Mar 2010
Сообщений: 20
За подсказку большое спасибо, но я совсем не в теме по этому языку.

- как создать массив
- как выглядит код цикла
- как в цикле отделять один <item> от другого
- как определить что данный <item> был последним и цикл надо прекратить

Старый 18.03.2010, 12:07
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 6  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Код AS3:
var xml:XML = <restResponse object="photo" method="getInbox">
			<item index="0">
				<id>232</id>
				<title>Альбом1</title>
				<description>описание альбома 1</description>
				<createdOn>2009-08-11 15:23:03</createdOn>
				<updatedOn>2009-08-11 15:23:03</updatedOn>
				<cover>http://scribbler.ru/uploaded/photo/1/2.jpg</cover>
				<photosCount>10</photosCount>
			</item>
 
			<item index="1">
				<id>233</id>
				<title>Альбом2</title>
				<description>описание альбома 2</description>
				<createdOn>2009-08-11 15:23:03</createdOn>
				<updatedOn>2009-08-11 15:23:03</updatedOn>
				<cover>http://scribbler.ru/uploaded/photo/1/45.jpg</cover>
				<photosCount>45</photosCount>
				</item>	
			</restResponse>;
 
trace("Количество item:", (xml.item as XMLList).length())
			for each(var j:XML in xml.item) {
				trace("\n",j.name(),j.childIndex());
				for each(var i:XML in j.*) {					
					trace("\t",i.name(),":",i)							
				}
			}
---
Вот еще прочтите по XML


Последний раз редактировалось Партизан; 18.03.2010 в 12:09.
Старый 18.03.2010, 12:07
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 7  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Код AS3:
var items:/*XML*/Array = [];
for each(var item:XML in data.item)//где data - это ваш XML
{
 items.push(item);
}

Старый 18.03.2010, 12:11
Aloran вне форума Посмотреть профиль Отправить личное сообщение для Aloran Найти все сообщения от Aloran
  № 8  
Ответить с цитированием
Aloran

Регистрация: May 2009
Сообщений: 223
Записей в блоге: 1
http://help.adobe.com/ru_RU/AS3LCR/F...0.0/index.html
http://help.adobe.com/ru_RU/ActionSc...0204-7fdc.html
это вам в помощь

П.С.: Не серьезный подход какойто. Сначало литературу читают люди, делают "Hello World!!!", и изучают основные типы и т.д., а уж если что посложнее на форум бегут...

Старый 18.03.2010, 12:14
TopIce вне форума Посмотреть профиль Отправить личное сообщение для TopIce Найти все сообщения от TopIce
  № 9  
Ответить с цитированием
TopIce

Регистрация: Mar 2010
Сообщений: 20
Другое именно так и учил, по чу-чуть, шагами по учебнику.
а тут просто время поджимает. совсем совсем жмет.

Всем огромное спасибо за помощь

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.