XML как XMLNode в Actionscript / Flex - PullRequest
3 голосов
/ 27 мая 2010

Как получить корневой узел объекта XML в Actionscript?

Можно подумать, что я мог бы сказать это:

var Node:XMLNode = XMLVar as XMLNode;

Но, хотя XMLVar имеет тип XML, Node будет = null.

Так как мне это сделать?

Ответы [ 2 ]

1 голос
/ 27 мая 2010
var node:XMLNode = xmlVar as XMLNode;

хотя xmlVar имеет тип XML

XML и XMLNode не совместимы в ActionScript-3. XML класс AS2 (и связанные с ним классы) был переименован в flash.xml.XMLDocument в AS3.

Класс XMLNode / XMLDocument представляет устаревший объект XML, который присутствовал в ActionScript 2.0 и был переименован в ActionScript 3.0. В ActionScript 3.0 вместо этого рассмотрите возможность использования нового класса верхнего уровня XML и связанных классов, которые поддерживают E4X (ECMAScript для XML). Класс XMLNode / XMLDocument присутствует для обратной совместимости.

Объект типа XML нельзя привести непосредственно к XMLNode. Так как вы пытаетесь использовать ключевое слово as, оно просто возвращает null вместо того, чтобы поднять тревогу, говорящую о том, что приведение не удалось.


И, как уже упоминалось, рассмотрите возможность использования имен lowerCase для переменных, поскольку имена UpperCase обычно используются для именования классов.

1 голос
/ 27 мая 2010

Ваш код немного сбивает с толку, потому что вы используете первые символы в верхнем регистре для имен переменных. Взгляните на соглашения Adobe по кодированию для AS3 .

var xmlData:XML = new XML();
var node:XMLNode = xmlData.firstChild();

Этот пример довольно бесполезен, но он просто демонстрирует метод.

Используйте метод firstChild объекта XML . Чтобы получить первый узел как объект XMLNode.

...