Работа с пространствами имен в E4X

Я пытаюсь получить данные из XML-файла с пространством имен в приложении Flex. Существует корневое пространство имен (xmlns = "blah") и другое пространство имен (xmlns: i = "blah"), и я могу получить доступ к большинству тегов, используя следующее:

var ns:Namespace = doc.namespace();
var result:XMLList = doc.ns::element;

Однако есть несколько тегов, которые могут быть изменены в приложении, и я бы не хотел жестко их кодировать, возможно, используя метод elements:

var result:XMLList = doc.elements(configuredField);

Есть ли способ получить элементы с пространствами имен с помощью метода elements или аналогичный способ получить элементы XML в гибком формате с использованием параметра?


person Dan Monego    schedule 14.12.2011    source источник


Ответы (1)


Если я вас понимаю, вы можете получить узлы, используя динамические свойства (запись []).

var x:XML=
<root xmlns:i="testNS">
    <elem1>
        hhh
    </elem1>
    <i:elem2>
        123123
    </i:elem2>
</root>;
var elemName:String="elem2";
var ns:Namespace=x.namespace("i");
var tags:*=x.ns::[elemName]; //will contain all "elem2" tags in "i" namespace
person Timofei Davydik    schedule 20.01.2012