E4X в ActionScript нужна помощь - PullRequest
       2

E4X в ActionScript нужна помощь

2 голосов
/ 31 декабря 2010

Вот XML

Как с помощью E4X считывать значения узлов

<status>௵௸</status>

и узла <invisible value="false"/>?

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" creationComplete="init()">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[

            var xml:XML = 
                <iq type="result" id="ss-1">
                  <query status-min-ver="1" status-max="512" status-list-contents-max="5" status-list-max="3" xmlns="google:shared-status">
                    <status>
                      ௵௸
                    </status>
                    <show>
                      default
                    </show>
                    <status-list show="default">
                      <status>
                        ௵௸
                      </status>
                      <status>
                        ௸
                      </status>
                      <status>
                        ௸இ
                      </status>
                    </status-list>
                    <status-list show="dnd">
                      <status>
                        ௵௸
                      </status>
                      <status>
                        dnd, i have bad mood
                      </status>
                      <status>
                        showering
                      </status>
                      <status>
                        ▂▃▄▅▆▇█
                      </status>
                      <status>
                        ௸
                      </status>
                    </status-list>
                    <invisible value="false"/>
                  </query>
                </iq>

            public function init() {
                trace(xml.query.invisible.@value);
            }
        ]]>
    </fx:Script>
</s:Application>

1 Ответ

0 голосов
/ 31 декабря 2010

Предположим, <iq> - ваш корневой узел. Считать значение первого узла status так же просто, как:

trace(yourXML.query.status);

Чтение значения свойства выполняется следующим образом:

trace(yourXML.query.invisible.@value);

Редактировать: я пропустил, что ваш xml использует пространства имен. xmlns вот что определяет пространство имен:

<query status-min-ver="1" 
       status-max="512" 
       status-list-contents-max="5" 
       status-list-max="3" 
       xmlns="google:shared-status">

Это означает, что вам придется использовать дополнительный код, чтобы определить, из какого пространства имен вы хотите извлечь:

import Namespace;
var ns:Namespace = new Namespace("google:shared-status");

Затем префикс всех ваших узлов с пространством имен:

trace("foo:" + xml.ns::query.ns::invisible.@value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...