Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.01.2011, 10:57
forhaxed вне форума Посмотреть профиль Отправить личное сообщение для forhaxed Найти все сообщения от forhaxed
  № 1  
Ответить с цитированием
forhaxed

Регистрация: Jun 2009
Сообщений: 35
По умолчанию XML, не могу получить attribute

Доброго времени суток.

У нас есть XML'ка, конкретно:

Код:
<message from="news1.jab.forhaxed.ru" to="v_124060533@jab.forhaxed.ru/Home">

    <event boys="458" waiting="301" girls="389" age="10" xmlns="somegame:event:waitingroom">

        <User name="DurkO=)" male="1" id="v_15637703"/>
        <User name="Musa" male="1" id="v_109380202"/>

        <User name="(:" male="0" id="v_20398419"/>

        <User name="Вован" male="1" id="v_57846798"/>

        <User name="Евгения" male="0" id="v_118294953"/>
    </event>

    <amp xmlns="http://jabber.org/protocol/amp">

        <rule condition="deliver" value="stored" action="error"/>

    </amp>

</message>
Мне нужно получить из event атрибут boys, girls, etc.
Пробую сделать так (эмпирическим путем):

Код AS3:
var try1:String = String(xml.event.@boys);
var try2:String = String(xml.event.attributes);
var try3:String = String(xml.event.attribute("boys"));
var try4:String = String(xml.event.@*);
var try5:String = String(xml.amp.@xmlns);
var try6:String = String(xml.amp.attributes);
var try7:String = String(xml.amp.attribute("xmlns"));
var try8:String = String(xml.amp.@*);
 
var try9:String = String(xml.@from);
var try10:String = String(xml.attributes);
var try11:String = String(xml.attribute("from"));
var try12:String = String(xml.@* );
В ответ получаю:

Код:
try1 = ""
try2 = ""
try3 = ""
try4 = ""
try5 = ""
try6 = ""
try7 = ""
try8 = ""
try9 = "news1.jab.forhaxed.ru"
try10 = ""
try11 = "news1.jab.forhaxed.ru"
try12 = undefinded
Как получить attribute у дочерних элементов?


Последний раз редактировалось udaaff; 21.01.2011 в 13:13.
Старый 21.01.2011, 11:52
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Код AS3:
trace(typeof(xml.event));     //XMLList
trace(typeof(xml.event[0]));  //XML
trace(xml.event[0].@boys);    //458
__________________
тонкий тролль, осеянный благодатью

Старый 21.01.2011, 11:54
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Атрибут xmlns фигню творит, я бы советовал его прибить, тогда самый первый вариант заработает)
Если не прибивать:
Код AS3:
var waitingroom:Namespace = new Namespace( "somegame:event:waitingroom" );
trace(xml.waitingroom::event.@boys);
(с) http://stackoverflow.com/questions/2...3s-xml-parsing
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 21.01.2011, 12:23
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
xmlns - не аттрибут в полном смысле, а объявление пространства имен. Нужен для того, чтобы если XML формируется разными программами, например, не получилось так, что одна программа перезапишет информацию записанную другой программой. Получить все пространства имен доступные данному узлу: xml.inScopeDeclarations(), получить все пространства имен объявленные в этом узле: xml.namespaceDeclarations(), получить пространство имен в котором находится данный узел: xml.namespace().
__________________
Hell is the possibility of sanity

Старый 22.01.2011, 14:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код AS3:
var xml:XML = <message from="news1.jab.forhaxed.ru" to="v_124060533@jab.forhaxed.ru/Home">
 
    <event boys="458" waiting="301" girls="389" age="10" xmlns="somegame:event:waitingroom">
 
        <User name="DurkO=)" male="1" id="v_15637703"/>
        <User name="Musa" male="1" id="v_109380202"/>
 
        <User name="(:" male="0" id="v_20398419"/>
 
        <User name="Вован" male="1" id="v_57846798"/>
 
        <User name="Евгения" male="0" id="v_118294953"/>
    </event>
 
    <amp xmlns="http://jabber.org/protocol/amp">
 
        <rule condition="deliver" value="stored" action="error"/>
 
    </amp>
 
</message>;
 
var event:XML = xml..*.(localName() == 'event')[0];
 
trace(event.@boys);

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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