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

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

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

Регистрация: Jul 2004
Сообщений: 430
Question чтение xml в массив на AS3

Совершенно глупый попрос - возникла необходимость счить все значения xml в массив.

1.Я начал плясать от

Код:
public var exterXML:XML = new XML();
public var glArr: Array = new Array();
загрузил внешний XML в exterXML.

затем, написал маленькую функцию XMLtoArr() - основа которой вот такой цикл

Код:
for (var i=0; i<externalXML.length();i++){

glArr[i] = {// и вот здесь загвоздка, как достать содержание ноды?? //}

}

как быть? напоните как правильно сделать? Спасибо!

Пишеться это все на Flex...

Старый 06.10.2007, 11:06
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Почему нельзя работать напрямую с XML без конвертации в сомнительный безформатный массив?

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

Регистрация: Jul 2004
Сообщений: 430
А предложите вариант решения - мне надо это в комбобокс загнать... спасибо заранее...

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

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Комбобокс может вполне работать с XMLList - в вашем случае должно все работать с externalXML.children(). А если уж так нужно в массив, то:
Код:
for each(var xmlNode:XML in externalXML.children())
{
   glArr.push(xmlNode)
}


Последний раз редактировалось Sneg; 06.10.2007 в 11:52.
Старый 06.10.2007, 11:53
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:XML id="myXML" xmlns="">
	<root>
		<item>Text 0</item>
		<item>Text 1</item>
		<item>Text 2</item>
		<item>Text 3</item>
		<item>Text 4</item>
	</root>
</mx:XML>
	<mx:ComboBox x="84" y="106" dataProvider="{myXML.item}"></mx:ComboBox>
</mx:Application>
Для флекса у нас соответствующий раздел есть, кстати.

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

Регистрация: Jul 2004
Сообщений: 430
Код:
public var externalXML:XML=new XML();	
public var cards:Array =new Array();

//----------------------------инициализация-----------------------	
	private function initApp():void { 
		mdm.Application.init(this);    
		
		var loader:URLLoader = new URLLoader();
		var request:URLRequest = new URLRequest("xmlFile.xml");
		loader.load(request);
		
		loader.addEventListener(Event.COMPLETE, onComplete)
		
		XMLtoArr();
	}

private function XMLtoArr():void{
	
	//for (var i:Number=0; i<;i++){
	cards[0]=externalXML.children().length();
	Alert.show(cards[0]);
	//}

}
	
private function onComplete(event:Event):void {
    var loader:URLLoader = URLLoader(event.target);
    externalXML = XML(loader.data);
}
вообще проблема в функции XMLtoArr()...

Старый 06.10.2007, 13:24
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 7  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Загрузка данных происходит асинхронно - вызывайте XMLtoArr после завершения загрузки и присвоения данных переменной externalXML.

p.s. названия методов лучше называть с маленькой буквы

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

Регистрация: Jul 2004
Сообщений: 430
да понял - с загрузкой я разобрался...
теперь, хотелось бы сделать вот так:

Код:
for (var i:int=0; i<externalXML.children.lenght(); i++){

cards[i]= //вот здесь как обратиться к значению элнмента ноды, вообще, как к ним обращаются???//
}

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

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Выложите пример вашего XML'ника - иначе не ясно как его разбирать.

Старый 06.10.2007, 16:42
quazare вне форума Посмотреть профиль Отправить личное сообщение для quazare Найти все сообщения от quazare
  № 10  
Ответить с цитированием
quazare
 
Аватар для quazare

Регистрация: Jul 2004
Сообщений: 430
Спасибо все!
Я разобрался

Решилось это дело вот так

Код:
for (var i:int=0; i<extXML.children().length(); i++){

   cards[i] = extXML.children()[i].toString();

}
все работает
вот только теперь проблема = на комбобокс выдается замечание -

Код:
Data binding will not be able to detect assignments to "cards"
как это решить?

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

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

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


 


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


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