我有一个带有节点的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>
答案 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>