关于XML在与FLASH交互应用中的理解
2008-11-03 10:05
302 查看
一、书写标准的XML需要注意以下几点:
1、一个标准的XML文档必须要在第一行以"<?xml>"开头,以及一个"<?/>"结尾,其中开头部分需申明XML的版本,如:version="1.0",也应包含一个关于编码的声明:“encoding="utf-8"”;
2、XML要求所有的标签必须在文档结束之前被闭合,如果标签中包含内容,则必须写成“<标签名>内容</标签名>"的格式,如果内容为空,则应写在</标签名>的格式;即,后面必须有</XXX>这种格式的。
3、每个XML都有有一个根元素,也叫根节点。
4、节点有节点值和属性。
5、XML的节点值如果出现与XML标签关键字一样的字符,XML将会无法解析文档,比如,某个节点值如果是一个大于或者小于号,就会让解释器产生一个错误,
二、在FLASH中创建一个简单的实例:
三、关于FLASH解析XML详解,说白了,也就是对节点的读取。
首先,来看看这幅图,稍微加点印象。
下面,我将对XML文件的解析方面做详细的介绍。
为了便于讲解,在此,我举一个简单的例子。
1、新建一个记事本文件,在里面输入如下内容:
然后保存为"goods.xml",注意,在编码处,要选择"Unicode"。
2、下面,就对里面的各项值进行解读。
读取整个XML文件的方法:
在刚才的XML的同级目录下新建一FLA文件,然后在场景中放置一TextArea组件。并赋实例名“my_TextArea”,
然后在第一帧中添加如下代码:
按CTRL+ENTER测试,即可以看效果。
首先,我们来看看如何对XML中的节点名称或者节点属性进行读取呢?
比如,我们要读取如例子中的"购买物品"这几个字符,该如何操作呢?
我们使用如下语句:
this.firstChild.nodeName;
如果要读取"衬衣":
this.firstChild.childNodes[0].nodeName;
如果要读取"1条":
this.firstChild.childNodes[1].childNodes[0].nodeValue;
如果要读取裤子的品牌:
this.firstChild.childNodes[1].attributes.品牌;
将XML读取进LIST组件中:
第一个节点:firstChild:
用法:this.firstChild;
最后一个节点:lastChild
用法:this.lastChild;
兄弟节点:nextSibling:
用法:this.firstChild.childNodes[0].nextSibling;
另一个兄弟节点:previousSibling:
用法:this.firstChild.childNodes[0].previousSibling;
区别:nextSibling是朝后,而previousSibling是当前之前;
父类节点:parentNode:
用法:this.firstChild.parentNode;
上述所有实例演示:
http://www.taoshaw.com/taoshaw/study/LoadXml/LoadXML.swf
1、一个标准的XML文档必须要在第一行以"<?xml>"开头,以及一个"<?/>"结尾,其中开头部分需申明XML的版本,如:version="1.0",也应包含一个关于编码的声明:“encoding="utf-8"”;
2、XML要求所有的标签必须在文档结束之前被闭合,如果标签中包含内容,则必须写成“<标签名>内容</标签名>"的格式,如果内容为空,则应写在</标签名>的格式;即,后面必须有</XXX>这种格式的。
3、每个XML都有有一个根元素,也叫根节点。
4、节点有节点值和属性。
5、XML的节点值如果出现与XML标签关键字一样的字符,XML将会无法解析文档,比如,某个节点值如果是一个大于或者小于号,就会让解释器产生一个错误,
二、在FLASH中创建一个简单的实例:
//创建一个新的XML类实例 var my_XML:XML=new XML(); //创建一个TextArea组件,用于显示此XML内容 var my_TextArea:mx.controls.TextArea; //加载外部XML文件 my_XML.load("my_xml.xml"); //为load函数定义onLoad函数---此处是必须的。只有当加载成功后,才能控制XML。否则不能。 my_XML.onLoad=function(ok:Boolean){ if(ok){ my_TextArea.text+=this; }else{ my_TextArea.text+="加载失败..." } } //忽略空白: my_XML.ignoreWhite=true; |
首先,来看看这幅图,稍微加点印象。
下面,我将对XML文件的解析方面做详细的介绍。
为了便于讲解,在此,我举一个简单的例子。
1、新建一个记事本文件,在里面输入如下内容:
<购买物品> <衬衣 颜色="白色" 品牌="雅戈尔">1件</衬衣> <裤子 颜色="深蓝" 品牌="王子裤">1条</裤子> <鞋子 颜色="黑色" 品牌="红蜻蜓">3双</鞋子> <总花费金额> <打的费>50元</打的费> <货物金>1000元</货物金> </总花费金额> </购买物品> |
2、下面,就对里面的各项值进行解读。
读取整个XML文件的方法:
在刚才的XML的同级目录下新建一FLA文件,然后在场景中放置一TextArea组件。并赋实例名“my_TextArea”,
然后在第一帧中添加如下代码:
var my_XML:XML=new XML(); System.useCodepage=true; var my_TextArea:mx.controls.TextArea; my_XML.load("goods.xml") my_XML.onLoad=function(ok:Boolean){ if(ok){ my_TextArea.text+=this; }else{ my_TextArea.text+="加载失败" } } |
首先,我们来看看如何对XML中的节点名称或者节点属性进行读取呢?
比如,我们要读取如例子中的"购买物品"这几个字符,该如何操作呢?
我们使用如下语句:
this.firstChild.nodeName;
如果要读取"衬衣":
this.firstChild.childNodes[0].nodeName;
如果要读取"1条":
this.firstChild.childNodes[1].childNodes[0].nodeValue;
如果要读取裤子的品牌:
this.firstChild.childNodes[1].attributes.品牌;
将XML读取进LIST组件中:
System.useCodepage = true; var my_TextArea:mx.controls.TextArea; var my_List:mx.controls.List; var my_XML:XML = new XML(); my_XML.ignoreWhite = true; my_XML.load("shopping.xml"); my_XML.onLoad = function(ok:Boolean) { if (ok) { var childnodes = this.firstChild.childNodes; for (i=0; i<childnodes.length; i++) { my_List.addItem({label:childnodes.nodeName}); } } else { my_TextArea.text += "加载失败"; } }; |
用法:this.firstChild;
最后一个节点:lastChild
用法:this.lastChild;
兄弟节点:nextSibling:
用法:this.firstChild.childNodes[0].nextSibling;
另一个兄弟节点:previousSibling:
用法:this.firstChild.childNodes[0].previousSibling;
区别:nextSibling是朝后,而previousSibling是当前之前;
父类节点:parentNode:
用法:this.firstChild.parentNode;
上述所有实例演示:
http://www.taoshaw.com/taoshaw/study/LoadXml/LoadXML.swf
相关文章推荐
- 关于FLASH与XML交互应用中的理解
- 一个有趣的关于flash和多种设备交互等技术应用的演示网站
- 关于excel与xml 交互 [转 http://hi.baidu.com/lhmmc/]
- 关于HttpHandler与HttpModule的理解和应用方法
- java笔记--关于多线程状态的理解和应用
- SSH整合(XML)【理解】【应用】【重点】
- Qt中关于XML的读写应用
- 关于WEB服务器与应用服务器的一些理解和区别
- 复习,关于server.xml的一点理解
- 关于open操作的O_EXCL的存在应用价值理解
- flash读取xml中的html格式应用CDATA
- 关于This指针的理解和应用
- 【HTML5 canvas】关于canvas标签的理解和简单应用
- XML,Dictionary的应用---有关于页面之间接收和传递参数的又一解决方案 [原创]
- 关于获取 Android 中从res/values/strings.xml 应用名称的 字符串
- 关于redis的一些简单理解和应用
- flash+xml结合应用实例下载
- 关于NOR_FLASH的大小在单片机程序中的应用
- flash+xml结合应用实例下载
- 关于MYSQL的in,not in,exists,not exists等关键字简单易懂的理解与应用