Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 解析Flex树组件的XML_Actionscript 3_Apache Flex - Fatal编程技术网

Actionscript 3 解析Flex树组件的XML

Actionscript 3 解析Flex树组件的XML,actionscript-3,apache-flex,Actionscript 3,Apache Flex,在我继承的项目中,我需要从使用spark列表组件切换到使用mx树组件,以便能够将项目分组到目录中。我对Flex/XML已经很生疏了,所以我想知道我是否可以在正确的方向上获得一些信息来处理这个问题 我的问题(详情/数据详情如下): 如何从“学生”节点检测“学生组”节点 树组件需要一个用于显示名称的字段。是吗 “studentGroup”节点和“student”节点之间必须有一个通用名称 节点 我完全做错了吗 以前我的XML数据是扁平的(为了清晰起见,我去掉了所有细节): 我需要改变它,以便对于

在我继承的项目中,我需要从使用spark列表组件切换到使用mx树组件,以便能够将项目分组到目录中。我对Flex/XML已经很生疏了,所以我想知道我是否可以在正确的方向上获得一些信息来处理这个问题

我的问题(详情/数据详情如下):

  • 如何从“学生”节点检测“学生组”节点

  • 树组件需要一个用于显示名称的字段。是吗 “studentGroup”节点和“student”节点之间必须有一个通用名称 节点

  • 我完全做错了吗

以前我的XML数据是扁平的(为了清晰起见,我去掉了所有细节):

我需要改变它,以便对于“学生小组”我只做一件事,对于“学生”我像上面那样处理它。在伪代码中,它看起来如下所示,但我在语法上被绊倒了(或者我完全偏离了轨道?)


我想试试这样的东西:

for each(var studentGroup:XML in prop.studentGroup)
{
    //student group
    for each(var student:XML in studentGroup.student) {
        tempStudent = new Student(studentProp.studentName);
        tempStudentGroup.add(tempStudent);
    }
    tempArray.addItem(tempStudentGroup);
}
for each(var student:XML in prop.student)
{
    //single student
    tempStudent = new Student(studentProp.studentName);
    tempArray.addItem(tempStudent);
}
<studentList>
  <student label="Chess">
    <student label="Bett"/>
  </student>
  <student label="Sam"/>
  <student label="Ruby"/>
</studentList>
 override public function set data(value:Object):void {
   if( value != null ) { 
     super.data = value;

     if( TreeListData(super.listData).hasChildren ) {
       ...

如果要在mx:Tree中使用,您的xml将如下所示:

for each(var studentGroup:XML in prop.studentGroup)
{
    //student group
    for each(var student:XML in studentGroup.student) {
        tempStudent = new Student(studentProp.studentName);
        tempStudentGroup.add(tempStudent);
    }
    tempArray.addItem(tempStudentGroup);
}
for each(var student:XML in prop.student)
{
    //single student
    tempStudent = new Student(studentProp.studentName);
    tempArray.addItem(tempStudent);
}
<studentList>
  <student label="Chess">
    <student label="Bett"/>
  </student>
  <student label="Sam"/>
  <student label="Ruby"/>
</studentList>
 override public function set data(value:Object):void {
   if( value != null ) { 
     super.data = value;

     if( TreeListData(super.listData).hasChildren ) {
       ...
您的第二个问题:是的,它们都使用“标签”作为显示名称

 override public function set data(value:Object):void {
   if( value != null ) { 
     super.data = value;

     if( TreeListData(super.listData).hasChildren ) {
       ...