Actionscript 3 E4X работает со значениями пространства имен в XML - PullRequest
1 голос
/ 10 июня 2010

Я создаю приложение, используя скрипт Action 3. Я получаю какой-то XML из Интернета, однако имена узлов - это mms: Изображение mms: Результаты и т. Д. Мой компилятор сценария действия выдает ошибку, поскольку он не ожидает увидеть точку с запятой в имени узла. Как получить доступ к узлам?

спасибо

1 Ответ

5 голосов
/ 10 июня 2010

Это пространства имен XML, и их может быть сложно использовать.Взгляните на документацию Adobe по Использование пространств имен XML .

В основном вы должны получить пространство имен:

var mmsNS:Namespace = message.namespace("mms");

// alternatively for nested namespaces:

var mmsNS:Namespace = new Namespace("mms", " ... url of namespace ... ");

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

var data:XML = message.@mmsNS::Results;

Ярлык, если весь ваш XML находится в определенном пространстве имен, предназначен для установки пространства имен по умолчанию:

default xml namespace = mmsNs;

edit: Пространство имен XML, к которому вы пытаетесь получить доступ, должно быть объявлено внутри фрагмента XML:

<root xmlns:mms="http://example.com/mms">
    <mms:someNode someAttr="someVal" />
</root>

Посмотрите документы w3c для Пространства имен XML , чтобы убедиться, что ваш документ исправен(возможно, даже пропустит его через валидатор).

...