从XML文件创建索引列表,然后按索引顺序显示所选内容

时间:2013-04-02 16:24:05

标签: actionscript-3 xml-parsing

我有一个带有节点的XML文件,如下面的数百节课。每节课在XML文件中有多个节点(最多50个)。

我想通读XML,只选择带有所请求课程编号的课程节点,然后按索引编号顺序(i的顺序)显示课程节点的数据。例如,如果我想使用第1-3课,那么代码确定这些课程以索引0开头并以索引75结束。一旦我有一个课程范围的开始和结束索引,我就知道其余的。或者,如果有更简单的方法来完成所描述的内容,我会尝试一下。

<Course>
    <i>
        <Lesson>1</Lesson>
        <Word1>tank</Word1>
        <Audio1>../audio/1s-1a.mp3</Audio1>
        <Word2>fish</Word2>
        <Audio2>../audio/1s-1b.mp3</Audio2>
    </i>
    <i>
        <Lesson>1</Lesson>
        <Word1>thought</Word1>
        <Audio1>../audio/1s-2a.mp3</Audio1>
        <Word2>action</Word2>
        <Audio2>../audio/1s-2b.mp3</Audio2>
    </i>
    <i>
        <Lesson>1</Lesson>
        <Word1>trace</Word1>
        <Audio1>../audio/1s-3a.mp3</Audio1>
        <Word2>follow</Word2>
        <Audio2>../audio/1s-3b.mp3</Audio2>
    </i>
</Course>

1 个答案:

答案 0 :(得分:2)

试试这个,它适用于我:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

<fx:Script>
    <![CDATA[
        private var data:XML = 
            <Course>
                <i>
                    <Lesson>1</Lesson>
                    <Word1>tank</Word1>
                    <Audio1>../audio/1s-1a.mp3</Audio1>
                    <Word2>fish</Word2>
                    <Audio2>../audio/1s-1b.mp3</Audio2>
                </i>
                <i>
                    <Lesson>1</Lesson>
                    <Word1>thought</Word1>
                    <Audio1>../audio/1s-2a.mp3</Audio1>
                    <Word2>action</Word2>
                    <Audio2>../audio/1s-2b.mp3</Audio2>
                </i>
                <i>
                    <Lesson>3</Lesson>
                    <Word1>trace</Word1>
                    <Audio1>../audio/1s-3a.mp3</Audio1>
                    <Word2>follow</Word2>
                    <Audio2>../audio/1s-3b.mp3</Audio2>
                </i>
                <i>
                    <Lesson>5</Lesson>
                    <Word1>trace</Word1>
                    <Audio1>../audio/1s-3a.mp3</Audio1>
                    <Word2>follow</Word2>
                    <Audio2>../audio/1s-3b.mp3</Audio2>
                </i>
            </Course>

        protected function onBtnClick(event:MouseEvent):void
        {
            var xmlList:XMLList = data.i.(Lesson >= 1 && Lesson <= 3);
            //do something
        }

    ]]>
</fx:Script>

<s:Button label="Get Lessons" click="onBtnClick(event)" />
</s:Application>