///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
??????????????? <?xml version="1.0" encoding="GB2312"?>
????????????????????????????? <personal>
????????????????????????????????????????? <profile>
???????????????????????????????????????? <name>明</name>
???????????????????????????????????????? <sex>男</sex>
??????????????????????????????????????? <age>21</age>
??????????????????????????????????????? <city>南宁</city>
??????????????????????????????????????? </profile>
??????????????????????????????????????? <profile>
??????????????????????????????????????? <name>繁</name>
??????????????????????????????? <sex>男</sex>
??????????????????????????????????????? <age>21</age>
???????????????????????????????????????? <city>上海</city>
?????????????????????????????????????????? </profile>
??????????????????????????????????? </personal>
?? 把该文档作为 profile.xml 保存。
现在我们来创建用于读取profile.xml文档的flash 程序。新建一个Flash 文档,在根时间线的第1帧捆绑下面的脚本:
?????????????????????????
//防止乱码(一般这样说,但不然只要在保存XML文档时以Unicode保存就可以删除这句)
????? System.useCodepage=true;
????? //创建一个XML对象myXML
????? myXML=new XML();
????? //创建一个All 与 aa bb cc dd的数组
?????? var all = new Array();
????? var aa = new Array();
?????? var bb = new Array();
?????? var cc = new Array();
?????? var dd = new Array();
????? //把profile.xml装入myXML
????? myXML.load("profile.xml");
????? //忽略仅包含空白的文本节点
????? myXML.ignoreWhite=true;
????? //当profile.xml完全装入myXML中时应进行的处理
????? myXML.onLoad=function(success){
??????????? //如果将profile.xml完全装入时
??????????? if (success){
??????????????? //获取myXML 对象中全部子节点对象的对象数组,对象数组中的每个数据元素都是 myXML 操作对象中的一个子节点对象。
??????????????? all = myXML.firstChild.childNodes;
??????????????? //测试可以看到"<personal><profile>.....</profile> <profile>.....</profile></personal>"中所有的数据
??????????????? trace(All);
??????????????? //用一个 for 得出all的总数,这里2
????????????? for (var i = 0; i<all.length; i++) {
??????????????? //如果想得到profile.xml文档中所有的"<name>..</name>"数据,输入下句
??????????????? aa[i] = all[i].childNodes[0].firstChild.nodeValue;
??????????????? trace(aa[i]);
??????????????? //如果想得到profile.xml文档中所有的"<sex>..</sex>"数据,输入下句
??????????????? bb[i] = all[i].childNodes[1].firstChild.nodeValue;
??????????????? trace(bb[i]);
??????????????? //如果想得到profile.xml文档中所有的"<age>..</age>"数据,输入下句
??????????????? cc[i] = all[i].childNodes[2].firstChild.nodeValue;
??????????????? trace(cc[i]);
??????????????? //如果想得到profile.xml文档中所有的"<city>..</city>"数据,输入下句
??????????????? dd[i] = all[i].childNodes[3].firstChild.nodeValue;
??????????????? trace(dd[i]);
????????????}//结束
??? }
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
???? ////////////////////////语法1////////////////////
????? //语法: myXML.childNodes??
????? //返回:一个对象数组
????? //介绍:读取 XML 操作对象的 childNodes 属性,可以获取一个包含 myXML 操作对象中全部子节点对象的对象数组,对象数组中的每????????????? 个数据元素都是 myXML 操作对象中的一个子节点对象。
???? //////////////////////////////语法2///////////////////////???????
???? //语法: myXML.firstChild
???? //返回:一个 XML 元素或文字节点对象
???? //介绍:通过读取 XML 操作对象的 firstChild 属性,可以获取 myXML 操作对象中包含的第一个子元素节点或子文字节点对象。????????
????????????????????? 是不是很简当呢!当然这只是我们的初步,之后我雪狐所要讲解的是如何用XML文档里的数据来制作一个简单的flash播放器
文章2============================
XML类:
?????? XML.ignoreWhite;//处理xml文档中的空白,设为true时,忽略空白,默认值为false.
?????? XML.load("xml文档的地址");//加载指定的xml文档.
?????? XML.onLoad=function(success:Boolean){};//成功加载了xml文档时调用.
?????? XML构造函数.
XMLNode类:
?????? XMLNode.attributes;//用来指定xml文档的属性.
?????? XMLNode.childNodes;//返回指定xml文档对象的子级的数组.
?????? XMLNode.firstChild;//引用父级节点的子级列表中的第一个子级.
?????? XMLNode.nodeValue;//返回XML对象的节点值.
?????? XMLNode.nodeName;//XML 对象的节点名称
在“蓝色理想”里找到这些属性,用nodeValue的时候,试了大半天,还是没有成功。。。
一时兴起,试了firstChild,竟然成功了。。
如:<xml><ls><langshen name="狼神">还是狼神</langshen></ls></xml>
提取一个XML中,“langshen”这个值的时候,name是这样提取的:
xml.firstChild.firstChild.firstChild.attributes.name
.而结点内容,则是:
xml.firstChild.firstChild.firstChild.firstChild。。用nodeValue时会返回null
而且,FLASH中读XML和VB类的不一样,第一层就已经是一个firstChild......