Форум 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=207072)

ther 22.03.2014 03:31

обращение к ноду по имени XML
 
Сто лет мучает вопрос, который я постоянно как то обходил. Вот вспомнил и решил спросить.
к примеру, есть xml вида
Код:

<Buildings>
  <Buildings1>
    <title>какой то тайтл</title>
    <description>какое то описание</description>
  </Buildings1>
  <Buildings2>
    <title>какой то тайтл</title>
    <description>какое то описание</description>
  </Buildings2>
</Buildings>

и есть определенная обработка, которая откуда то берет id. Это 1 или 2. Как мне по имени обратится к XML?
то есть
Код AS3:

var Buildings:XML <=тут данные

можно напрямую
Код AS3:

Buildings.Buildings.Buildings2.Title

а вот ели надо динамическое обращение типа
Код AS3:

Buildings.Buildings.{<font color="Red">Buildings2font>}.Title

чтобы Buildings2 было значением переменной
пробовал через
Код AS3:

                        var xm : XMLList = Buildings[0].children();
                        trace(xm['Buildings2'])

но фиг. В общем, надо что то типа getNodeByName
ПС
блин, надеюсь понятно пояснил

Babylon 22.03.2014 04:08

Надоело тыкать
https://code.google.com/p/xpath-as3/

ChuwY 22.03.2014 04:38

Я засыпаю и, возможно, не до конца понял сути, но я бы сделал так:

Код:

<Buildings>
    <Building id = "1">
        <title>какой то тайтл</title>
        <description>какое то описание</description>
    </Building>
    <Building id = "2">
        <title>какой то тайтл</title>
        <description>какое то описание</description>
    </Building>
</Buildings>

Код AS3:

var buildings : XML;//<=тут данные
var someId : int = 1;// например
var someBuilding : XML = buildings.building.(@id == someId);

В общем, смотреть сюда.

ZackMercury 22.03.2014 18:24

Цитата:

чтобы Buildings2 было значением переменной
Код AS3:

var text:String = "Buildings2";
trace(Buildings.Buildings[text].title);

Добавлено через 1 час 29 минут
И заодно объясню.
В иерархии AS3 запись someObject['obj1']['internalobj1'] идентична записи someObject.obj1.internalobj1.

ther 23.03.2014 19:37

спасибо


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

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