1

我有一个包含如下节点的 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>
4

1 回答 1

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>
于 2013-04-02T17:03:31.013 回答