Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   аналог Where (http://www.flasher.ru/forum/showthread.php?t=154075)

Welcometo 12.04.2011 13:26

аналог Where
 
Здравствуйте, подскажите, пожалуйста, есть ли As3 оператор который выполняет те же самые функции, что и опретаор WHERE в sql? то есть мне надо выдернуть из XML коллекции тот элемент, WHERE ID=1 ..Либо может есть какие то альтернативные методы? На уме только одно - перебирать в цикле ВСЕ элементы коллекции, и искать тот объект, в котором свойство ID = 1. Но это неправильно. Очень долго будет работать при большом кол-ве записей.

Juice_Green 12.04.2011 13:29

фильтр средствами E4X не подходит?

Welcometo 12.04.2011 13:32

Хм, а можно поподробней?
структура XML такова :
Код:

<user>
                <id>3</id>
                <name>Петр</name>
                <lastname>Петров</lastname>
        </user>


goodguy 12.04.2011 13:34

Цитата:

Либо может есть какие то альтернативные методы?
Задается название основного элемента, потом, через две точки .. того (дочернего), который нужно найти.
Но цикл все равно нужен. sql ведь тоже циклом все выбирает

Цитата:

Но это неправильно. Очень долго будет работать при большом кол-ве записей.
У меня прайс листы из 1с, в которых больше 100 000 строк, парсит за 4 секунды, при этом выбирая все нужное, цена, наименование, артикул и формируя из этого html таблицу

Welcometo 12.04.2011 13:45

Цитата:

Сообщение от goodguy (Сообщение 988734)
Задается название основного элемента, потом, через две точки .. того (дочернего), который нужно найти.

То есть примерно так: user..id==5?
Выше указал примерную структуру моего XML

Hidest 12.04.2011 13:46

Код AS3:

var xml:XML = <users><user>
                <id>1</id>
                <name>Ваня</name>
                <lastname>Петров</lastname>
        </user><user>
                <id>2</id>
                <name>Петр</name>
                <lastname>Петров</lastname>
        </user><user>
                <id>3</id>
                <name>Саша</name>
                <lastname>Петров</lastname>
        </user></users>;
 
 
trace(xml.user.(id == 2).name); // Петр


Welcometo 12.04.2011 13:49

Нашел вот такой выход: if (user.(id == 5)) {} РАботать будет?

Добавлено через 54 секунды
Спасибо!)) в принципе уже нарыл что то подобное)


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

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