Как получить доступ к значению атрибута XML с помощью строковой переменной? Как это можно применить к фильтрации? - PullRequest
1 голос
/ 01 августа 2011

Использование e4x в flex:

var attr : String = "foo";
var xml : XML = 
    <resultSet>
       <node foo="1"/>
    </resultSet>;

Как я могу использовать переменную "attr" для доступа

xml.node.@foo 

Я думал, что смогу сделать это с

xml.node.@[attr]

Но, похоже, это не работает. Как я могу получить доступ к этому атрибуту по динамическому значению, как это?

EDIT: Оба

xml.node.@[attr];

и

xml.node.attribute(attr);

работа, как предложил Константинер.

Обновление:

Скажем, у меня есть XMLList в этой форме:

var bar:XML = 
    <resultSet>
         <node>value</node>
    </resultSet>;

Я хочу отфильтровать оригинальный XML выше, сопоставив атрибуты "foo" с "значением" из узла в баре.

По сути, я хочу подсписок исходного XML, такой, что

xml.node.@foo == bar.value 

для каждой строки XML в исходном значении

Как упоминал Константинер, я могу отфильтровать исходный список по значению в foo, но что, если я хочу фильтровать по нескольким значениям?

Могу ли я сделать что-то вроде:

xml.node.(bar.node.contains(attribute(foo)) ? attribute(foo) : null);

Или, возможно, более чистый метод вместо нуля?

1 Ответ

2 голосов
/ 01 августа 2011

Попробуйте использовать xml.node.attribute(attr).

...