Как мне создать переменные пути, используя e4X? - PullRequest
1 голос
/ 18 января 2010

Мне нужно знать, как я могу разобрать путь переменной в Flex 3 и e4X.Например, у меня есть две строки XML, в которых имя одного элемента является единственным отличием.

<NameOfRoot>
    <NameOfChild1>
        <data>1</data>
    </NameOfChild1>
</NameOfRoot>

<NameOfRoot>
    <NameOfChild2>
        <data>2</data>
    </NameOfChild2>
</NameOfRoot>

В настоящее время я обращаюсь к таким переменным:задача более абстрактная, так что если введено «NameOfChild3», мне не нужно обновлять код.Например:

var data:String = NameOfRoot.*::{variable}.*::data;

Кто-нибудь знает, как это можно сделать?

Ответы [ 3 ]

1 голос
/ 18 января 2010

Используйте свойство child (пример LiveDocs здесь ):

var tagName:String = "NameOfChild1";
var data:String = NameOfRoot.child(tagName).data;

Это без пространства имен - не уверен, нужно ли это в вашем случае, но я предполагаю, что вы добавите несколько *::?

1 голос
/ 18 января 2010

это тоже работает:

var data:String = NameOfRoot..data;

но если у вас более 1 узла данных, вам придется разобраться с некоторыми вещами.

0 голосов
/ 18 января 2010

Похоже на ". *." операция будет работать. Интересно, это самый простой способ решить эту проблему?

var data:String = NameOfRoot.*.*::data;
...