关于在Flex中解析xml文件的问题

时间:2010-08-31 19:45:45

标签: flex

我现在面对一个小项目,我必须向用户提供一个peoridic表。但是,它比一个纯粹的peoridic表图像文件更复杂。让我分解一下:< / p>

1.在同一文件夹中,有一个xml文件,其格式如下:

<constraints>
<element>
 <name>Calcium</name>
 <abbreviation>Ca</abbreviation>
 <emissions>
  <wavelength>118</wavelength>
 </emissions>
 <standards>
  <concentration>0.01</concentration>
  <concentration>0.1</concentration>
 </standards>
</element>

它基本上只是指定了哪些元素应该在peoridic表中突出显示。因此,从这个xml文件中读取后,我们的peoridic表应该通过使这些元素变为黄色和可点击而反映其他灰色且不可点击而反映出来。但只有name属性是我需要的。

2.其次,只需要确保xml文件指定的元素周期表元素上的元素应该被用户单击启用。

由于我对Flex编程不熟悉,现在最关心的是两件事。首先是如何在FLEX中进行xml解析?我在C#中进行了这种解析,但不知道如何做到这一点。 其次,我应该如何描绘元素周期表?我应该使元素可以点击。 第三,我应该如何让周期表知道从xml文件中解析出来的元素,即我应该在哪里存储这些提取的元素?

听起来有点难,我只需要一些想法或者一些代码来帮助我开始,谢谢!

2 个答案:

答案 0 :(得分:4)

在使用E4X的动作脚本3中进行XML解析非常简单,有点similar to C#

e.g。

var table:XML = <constraints>
<element>
 <name>Calcium</name>
 <abbreviation>Ca</abbreviation>
 <emissions>
  <wavelength>118</wavelength>
 </emissions>
 <standards>
  <concentration>0.01</concentration>
  <concentration>0.1</concentration>
 </standards>
</element>
</constraints>
trace(table.element.name);

结帐E4X tutorial on the Yahoo Developer Network以便轻松上手。其余的应该很容易。

对于第2点,您应该遍历元素名称,然后启用它们的视图/可视资产等效。

e.g。

for each (var element:XML in table.element.*) trace(element.name);//enable here instead of tracing

<强>更新

我对伟大的libspark SvgParserwikipedia periodic table svg感到很有趣。 这是 NOT 人们应该如何编写代码,这只是一个快速而肮脏的测试。

您可以查看test heresource here

这是预览: flex 3 periodic table test

同时显示解析的C#版本会有所帮助。 我发现了另一个很棒的E4X article

HTH, 乔治

答案 1 :(得分:2)

您还需要考虑如何将XML引入Flex应用程序,因为flex无法从本地文件服务器读取。您可以将XML与应用程序捆绑在一起,也可以从服务器加载它。