Всем привет!
Есть такой xml:
Код:
<data>
<playlists>
<playlist id="1" pages="1,5">
<track id="1" src="songs/006.mp3" ord="3" />
<track id="2" src="songs/001.mp3" ord="1" />
<track id="3" src="songs/005.mp3" ord="2" />
</playlist>
<playlist id="2" pages="2,4">
<track id="1" src="songs/008.mp3" ord="4" />
<track id="2" src="songs/009.mp3" ord="1" />
<track id="3" src="songs/002.mp3" ord="2" />
<track id="4" src="songs/007.mp3" ord="3" />
</playlist>
<playlist id="default">
<track id="1" src="songs/003.mp3" ord="2" />
<track id="2" src="songs/004.mp3" ord="1" />
</playlist>
</playlists>
</data>
Мне необходимо с помощью предикатов получить плейлист, в атрибуте pages которого содержится айди нужной мне страницы. Текущий код:
Код AS3:
//...
private var pPAGE_ID :String = "1";
//...
trace(_songsXml.playlists.playlist.(@pages.toString().indexOf(pPAGE_ID) != -1));
//...
Выдает результат:
Код:
ReferenceError: Error #1065: Variable @pages is not defined.
at Main/parseSongsXML()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at CLoader/setupCompleteHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
несмотря на то, что код:
Код AS1/AS2:
trace(_songsXml.playlists.playlist.@pages);
Нормально выводит содержимое атрибутов... Не могу понять, в чем же дело. Подскажите плиз.
Добавлено через 4 минуты
Млин, создал сообщение, посмотрел на него внимательно и все понял!
Завал происходит на ноде, у которого нет этого атрибута! Ввел дополнительное условие - помогло! Два часа моск трахал...
Код AS3:
//...
trace(_songsXml.playlists.playlist.(hasOwnProperty("@pages") && @pages.toString().indexOf(pPAGE_ID) != -1));
//...