1

我需要知道如何在 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;

有没有人知道如何做到这一点?

4

3 回答 3

1

这也有效:

var data:String = NameOfRoot..data;

但如果你有超过 1 个数据节点,你将不得不整理一些东西。

于 2010-01-18T15:22:51.530 回答
1

使用该child属性(此处为 LiveDocs 示例):

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

那是没有命名空间的——不确定在你的情况下是否有必要,但我假设你会添加一些*::'s?

于 2010-01-18T06:36:55.683 回答
0

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

var data:String = NameOfRoot.*.*::data;
于 2010-01-17T23:44:15.823 回答