带着上一节的问题,这次我们开始讨论数组与xml 的关系,配合使用它来达到我们想要的效果。
第一, 我们可以这样理解,数组作用是存放东西,好比仓库
第二, Xml里面的数据,好比商品
第三, 现在我们这个仓库来装取我们的商品
看下面的xml 文件这次增加三个项目(先看上一章所讲的内容)
<?xml version="1.0" encoding="UTF-8"?>
<item>
<b name="夏天的树人"/>
<b name="秋天的树人"/>
<b name="冬天的树人"/>
<b name="春天的树人"/>
</item>
这里增加几个name 到时候我用数组来装我们的数据,显示我们的数据
好了,现在开始我们下一步的工作拉
新建一个fla文件,在第一帧上写上我们的代码最开始的代码
var myxml:XML=new XML();//新建对象
System.useCodepage=true;//防止乱码
myxml.ignoreWhite=true;
myxml.load("Mymenu.XML");//开始加载外部的xml文件
myxml.onLoad=function(success)
{
if(success)
trace("成功");
}
保证外部加载回来的xml文件可以被加载这个工作的第一步。
问题1,怎样显示出xml文件的内容?
回答: xml文件已经被加载了,接下来我们的工作是用xml操作语句来获取我们所要的值。看下面的代码。
var myxml:XML=new XML();//新建对象
System.useCodepage=true;//防止乱码
myxml.ignoreWhite=true;
myxml.load("Mymenu.XML");//开始加载外部的xml文件
myxml.onLoad=function(success)
{
if(success)
trace("成功");
trace(myxml.firstChild.childNodes[0].attributes.name);
trace(myxml.firstChild.childNodes[1].attributes.name);
trace(myxml.firstChild.childNodes[2].attributes.name);
trace(myxml.firstChild.childNodes[3].attributes.name);
}
这里只是增加四句。它最大区别之处就是childNodes[??]里面值的不同,它是一个数组,分别代码标签<b name=”??”/>里面不同的值,如果代码调试成功的话。在输出面板就会按顺序显示出这样的信息。
成功
夏天的树人
秋天的树人
冬天的树人
春天的树人
问题二:xml数据可显示出来了,它有什么用呢?
回答:数据可以显示出来,那么我们就可以利用xml 的值帮我们做很多东西,例如是一个动态的文本导航,这个一个很常用的做法,外部加载xml文件,swf文件显示它他的值,日后我们只需要修改xml文件的值就帮助不修改fla文件就可以达到维护的目的。
接下来,我们用四个动态文本框将xml的值显示出来吧这里只要增加几句就ok
分别名为 mytext1,mytext2,mytext3,mytext4
代码如下:
var myxml:XML=new XML();//新建对象
System.useCodepage=true;//防止乱码
myxml.ignoreWhite=true;
myxml.load("Mymenu.XML");//开始加载外部的xml文件
myxml.onLoad=function(success)
{
if(success)
{trace("成功");
trace(myxml.firstChild.childNodes[0].attributes.name);
trace(myxml.firstChild.childNodes[1].attributes.name);
trace(myxml.firstChild.childNodes[2].attributes.name);
trace(myxml.firstChild.childNodes[3].attributes.name);
mytext1.text=myxml.firstChild.childNodes[0].attributes.name;
mytext2.text=myxml.firstChild.childNodes[1].attributes.name;
mytext3.text=myxml.firstChild.childNodes[2].attributes.name;
mytext4.text=myxml.firstChild.childNodes[3].attributes.name;
}
}
这里增加只是四句,我们达到用动态文本框显示xml数据的目的
mytext1.text=myxml.firstChild.childNodes[0].attributes.name;
mytext2.text=myxml.firstChild.childNodes[1].attributes.name;
mytext3.text=myxml.firstChild.childNodes[2].attributes.name;
mytext4.text=myxml.firstChild.childNodes[3].attributes.name;
这下次跟上一节我讨论的问题是一样的好了。继续看问题
问题三,xml与数组真的有关系吗?它们配合使用是怎样的?
回答:数组的用处就是存储数据,帮我们管理数据,现在让我们开始我们下面的讲解吧
第一步:我们要获取xml数据。我们利用数组来
首先新建一个数组。
var list=new Array();
代码如下
var myxml:XML=new XML();//新建对象
System.useCodepage=true;//防止乱码
myxml.ignoreWhite=true;
var list=new Array();//新建数组用于存储xml数据
myxml.load("Mymenu.XML");//开始加载外部的xml文件
myxml.onLoad=function(success)
{
if(success)
{trace("成功");
trace(myxml.firstChild.childNodes[0].attributes.name);
trace(myxml.firstChild.childNodes[1].attributes.name);
trace(myxml.firstChild.childNodes[2].attributes.name);
trace(myxml.firstChild.childNodes[3].attributes.name);
for(i=0;i<myxml.firstChild.childNodes.length;i++)
{
list[i]=myxml.firstChild.childNodes[i].attributes.name;
mytext1.text=list[0];
mytext2.text=list[1];
mytext3.text=list[2];
mytext4.text=list[3];
}
}
}
在这里我们关键一步就是
for(i=0;i<myxml.firstChild.childNodes.length;i++)
{
list[i]=myxml.firstChild.childNodes[i].attributes.name;
}
其目的就是将xml 数据变量name的值存入到数组里面,日后我们就可以方便管理
现在解析一下:循环条件myxml.firstChild.childNodes.length
这里是指取得我们节点数组的长度,我们在xml设计了四个<那么长度就是4,可以这样理解.:这里只是增加几句而已
他同样可以达到刚才的效果,这一下子是不是很爽呢?
问题四,数组与xml的配合可以做出什么来?现在你能否告诉我,数组它的作用与定义呢?
回想一下,请慢慢地想慢慢的回忆。。。。。。。。。。。。
文章水平有限,望能见谅:希望能够对你有点帮助