Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   вывод данных из XML (http://www.flasher.ru/forum/showthread.php?t=159686)

lissa81 04.07.2011 13:04

вывод данных из XML
 
здравствуйте, подскажите пожалуйста как правильно загрузить данные из xml

я знаю как написать запрос к xml в AS3 но попала в ступор как это сделать в AS2

так ли делается запрос???
Код AS1/AS2:

var LV:LoadVars = new LoadVars();
LV.onData = getData;
LV.load("info.xml");
function getData(data:String) {
        trace(data);
}

вот это я получаю в xml
Код AS1/AS2:

<?xml version="1.0" encoding="utf-8"?>
<xgameserverreply>
<xgamereply>
        <currentprize>0</currentprize>
        <turnsleft>3</turnsleft>
        <couldplay>1</couldplay>
        <payed>0</payed>
</xgamereply>
</xgameserverreply>

раньше распаковывала xml так
Код AS1/AS2:

xStopX = _data.child('xgamereply').child('currentprize');

подскажите как это сделать в AS2

mooncar 04.07.2011 13:16

Вместо класса LoadVars тут нужно использовать класс XML - как для загрузки, так и для парсера.

lissa81 04.07.2011 13:21

Цитата:

Сообщение от mooncar (Сообщение 1008525)
Вместо класса LoadVars тут нужно использовать класс XML - как для загрузки, так и для парсера.

к сожалению не очень вас поняла
если не затруднит показать пример

mooncar 04.07.2011 14:09

В общем-то начать вам следует с хелпа.
В AS2 есть класс XML.

Примерно так:
Код AS1/AS2:

var xmlData:XML = new XML();
xmlData.ignoreWhite = true ;
xmlData.onLoad = loadXML;
xmlData.load('url');
 
function loadXML(success:Boolean)
{
        if (success)
        {
                var xmlNode:XMLNode = this.firstChild ;
                trace(xmlNode);
                var amount:Number = xmlNode.childNodes.length ;
                for (i = 0; i < amount; i++)
                {
                        //код парсера
                }
        }
        else
        {
                mess.text = 'Ошибка связи с конфигуратором данных';
        }
}

Парсер я не пишу, это зависит от ваших нужд, если что, попробуйте поискать примеры тут или еще где-то, их много выкладывалось

lissa81 04.07.2011 14:31

mooncar - спасибо вам огромное, вы мне очень помогли )))

Добавлено через 3 часа 54 минуты
Цитата:

Сообщение от mooncar (Сообщение 1008548)
В общем-то начать вам следует с хелпа.
В AS2 есть класс XML.

Примерно так:
Код AS1/AS2:

var xmlData:XML = new XML();
xmlData.ignoreWhite = true ;
xmlData.onLoad = loadXML;
xmlData.load('url');
 
function loadXML(success:Boolean)
{
        if (success)
        {
                var xmlNode:XMLNode = this.firstChild ;
                trace(xmlNode);
                var amount:Number = xmlNode.childNodes.length ;
                for (i = 0; i < amount; i++)
                {
                        //код парсера
                }
        }
        else
        {
                mess.text = 'Ошибка связи с конфигуратором данных';
        }
}

Парсер я не пишу, это зависит от ваших нужд, если что, попробуйте поискать примеры тут или еще где-то, их много выкладывалось


к сожалению мне так и не удалось написать код парсера ((((

удается написать код только для одной строки (

вас не затруднит объяснить как сделать для всех элементов

mooncar 04.07.2011 21:51

Код AS1/AS2:

var xmlData:XML = new XML();
xmlData.ignoreWhite = true ;
xmlData.onLoad = loadXML;
xmlData.load('xml/test.xml');
 
function loadXML(success:Boolean)
{
        if (success)
        {
                var xmlNode:XMLNode = this.firstChild.firstChild ;
                var amount:Number = xmlNode.childNodes.length ;
                for (i = 0; i < amount; i++)
                {
                        trace(xmlNode.childNodes[i].firstChild)
                }
        }
        else
        {
                mess.text = 'Ошибка связи с конфигуратором данных';
        }
}

Если вам в дальнейшем нужны вычисления с полученными числами, содержание узла нужно привести числовому типу:
Код AS1/AS2:

parseFloat(xmlNode.childNodes[i].firstChild)


lissa81 05.07.2011 11:00

mooncar - СПАСИБО ОГРОМНОЕ


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

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