![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2004
Сообщений: 430
|
Совершенно глупый попрос - возникла необходимость счить все значения xml в массив.
1.Я начал плясать от загрузил внешний XML в exterXML. затем, написал маленькую функцию XMLtoArr() - основа которой вот такой цикл for (var i=0; i<externalXML.length();i++){
glArr[i] = {// и вот здесь загвоздка, как достать содержание ноды?? //}
}
как быть? напоните как правильно сделать? Спасибо! Пишеться это все на Flex... |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Почему нельзя работать напрямую с XML без конвертации в сомнительный безформатный массив?
|
|
|||||
|
Регистрация: Jul 2004
Сообщений: 430
|
А предложите вариант решения - мне надо это в комбобокс загнать... спасибо заранее...
|
|
|||||
|
Комбобокс может вполне работать с XMLList - в вашем случае должно все работать с externalXML.children(). А если уж так нужно в массив, то:
Последний раз редактировалось Sneg; 06.10.2007 в 11:52. |
|
|||||
|
Et cetera
Регистрация: 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>
|
|
|||||
|
Регистрация: 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 после завершения загрузки и присвоения данных переменной externalXML.
p.s. названия методов лучше называть с маленькой буквы |
|
|||||
|
Регистрация: Jul 2004
Сообщений: 430
|
да понял - с загрузкой я разобрался...
теперь, хотелось бы сделать вот так: |
|
|||||
|
Выложите пример вашего XML'ника - иначе не ясно как его разбирать.
|
|
|||||
|
Регистрация: Jul 2004
Сообщений: 430
|
Спасибо все!
Я разобрался Решилось это дело вот так for (var i:int=0; i<extXML.children().length(); i++){
cards[i] = extXML.children()[i].toString();
}
![]() вот только теперь проблема = на комбобокс выдается замечание - как это решить? |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:11. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|