如何使用e4X创建变量路径?

时间:2010-01-17 22:51:11

标签: flex actionscript-3 actionscript flex3 e4x

我需要知道如何在Flex 3&中解析变量路径。 E4X。例如,我有两个XML字符串,其中一个元素的名称是唯一的区别。

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

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

目前我正在访问这样的变量:

var data1:String = NameOfRoot.*::NameOfChild1.*::data;
var data2:String = NameOfRoot.*::NameOfChild2.*::data;

我宁愿让这个任务更抽象,所以如果引入“NameOfChild3”,我不需要更新代码。例如:

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

有没有人了解如何做到这一点?

3 个答案:

答案 0 :(得分:1)

使用child属性(LiveDocs示例here):

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

没有命名空间 - 不确定在你的情况下是否有必要,但我认为你会添加一些*::的?

答案 1 :(得分:1)

这也有效:

var data:String = NameOfRoot..data;

但如果您有多个数据节点,则必须对某些内容进行排序。

答案 2 :(得分:0)

看起来像“。*。”操作会起作用。我想知道这是否是处理这个问题最简单的方法。

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