Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   поиск по XML (http://www.flasher.ru/forum/showthread.php?t=138168)

dandelion 01.04.2010 00:05

поиск по XML
 
Добрый день.
Фильтрую XML с помощью XMLList
Код AS1/AS2:

                        var item:XMLList
                        item =(fieldXML.*.(@coor_x == "2" && @coor_y=="2"));
trace(item);

странно что когда найденных значения два, то он всё нормально выводит:
<item floor_texture="123" furniture_ID="0" radius="" floor_type="floor" coor_x="2" coor_y="2"/>
<item floor_texture="123" furniture_ID="0" radius="" floor_type="wall" coor_x="2" coor_y="2"/>
а если всего одно, удовлетворяющее условиям, то не выводит ничего...
почему такое может происходить?

silin 01.04.2010 00:41

возможный расклад: если нод пустой, то toString(), который использует trace, ничего не покажет
toXMLString() покажет все как есть, item.length() тоже покажет правильно
Код AS3:

var fieldXML:XML =
<root>
        <item coor_x = "2" coor_y = "2"/>
</root>;
var item:XMLList = fieldXML.*.(@coor_x == "2" && @coor_y == "2");
trace( "item : " + item );//item :
trace( "item : " + item.toXMLString() );//item : <item coor_x="2" coor_y="2"/>


dandelion 01.04.2010 14:32

Спасибо большое, заработало.
А не могли бы пояснить, что значит пустой, в нём всё таки одно значение есть. Или чего то не так понимаю...

silin 01.04.2010 14:54

>>в нём всё таки одно значение есть

ну да, и это значение - XML без детей, хоть и с атрибутами - в этом смысле пустой
Цитата:

If an XMLList object has only one XML element, you can use the XML class methods on the XMLList object directly
получается, что toString и обходится с ним(XMLList-ом) как с XML-ем

dandelion 01.04.2010 15:03

понял, спасибо:)


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

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