关于FLASH与XML交互应用中的理解

一、书写标准的XML需要注意以下几点:
一个标准的XML文档必须要在第一行以"<?xml>"开头,以及一个"<?/>"结尾,其中开头部分需申明XML的版本,如:version="1.0",也应包含一个关于编码的声明:“encoding="utf-8"”; 
XML要求所有的标签必须在文档结束之前被闭合,如果标签中包含内容,则必须写成“<标签名>内容</标签名>"的格式,如果内容为空,则应写在</标签名>的格式;即,后面必须有</XXX>这种格式的。 
每个XML都有有一个根元素,也叫根节点。 
节点有节点值和属性。 
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;
三、关于FLASH解析XML详解,说白了,也就是对节点的读取。

首先,来看看这幅图,稍微加点印象。


下面,我将对XML文件的解析方面做详细的介绍。
为了便于讲解,在此,我举一个简单的例子。

1、新建一个记事本文件,在里面输入如下内容:

<购买物品>
<衬衣 颜色="白色" 品牌="雅戈尔">1件</衬衣>
<裤子 颜色="深蓝" 品牌="王子裤">2件</裤子>
<鞋子 颜色="黑色" 品牌="红蜻蜓">3双</鞋子>
<总花费金额>
<打的费>50元</打的费>
<货物金>1000元</货物金>
</总花费金额>
</购买物品>
然后保存为"goods.xml",注意,在编码处,要选择"Unicode"。

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 += "加载失败";
  }
};
第一个节点:firstChild:
用法:this.firstChild;
最后一个节点:lastChild
用法:this.firstChild;
兄弟节点:nextSibling:
用法:this.firstChild.childNodes[0].nextSibling;
另一个兄弟节点:previousSibling:
用法:this.firstChild.childNodes[0].previousSibling;
区别:nextSibling是朝后,而previousSibling是当前之前;
父类节点:parentNode:
用法:this.firstChild.parentNode;

(0)

相关推荐

  • 关于FLASH与XML交互应用中的理解

    一.书写标准的XML需要注意以下几点: 一个标准的XML文档必须要在第一行以"<?xml>"开头,以及一个"<?/>"结尾,其中开头部分需申明XML的版本,如:version="1.0",也应包含一个关于编码的声明:"encoding="utf-8"":  XML要求所有的标签必须在文档结束之前被闭合,如果标签中包含内容,则必须写成"<标签名>内容</标签

  • 用Flash和XML来构造一个聊天室

    点击这里下载源文件 前面的教程我们介绍了Flash与XML结合使用的原理以及一个论坛的实现,下面我们继续结合Flash与XML来实现一个简单的聊天室,有在线聊天.在线人员名单.在线时间.简单的管理操作等功能.根据需要在此基础上稍作修改,就可以实现一个功能比较完备的聊天室了. 一.原理 用Flash和XML来构造聊天室,跟直接用Flash和Asp来构造聊天室的基本原理是一样的.都是先在Flash端发送一个XML请求到服务器端,然后等待从服务器端的XML返回值,当值返回Flash端后,解释所返回的X

  • 完整简洁 Flash 处理XML 文档数据 教程 下篇

    实例4: 利用List组件做个mp3播放列表. 新建一个xml文档,在记事本中输入下面的代码,然后保存为 xml-004.xml. 复制代码 代码如下: <?xml version="1.0" encoding="gb2312"?>  <mp3List>      <mp3 path="jmzcg.mp3">阿桑-寂寞在唱歌</mp3>      <mp3 path="jmjywsl

  • 从进程中去理解 Docker隔离技术

    目录 1.起源 2.容器类比进程 3.隔离技术 4.总结 1.起源 “容器”这项技术的来龙去脉: 容器技术的兴起源于 PaaS 技术的普及: Docker 公司发布的 Docker 项目具有里程碑式的意义: Docker 项目通过“容器镜像”,解决了应用打包这个根本性难题. 容器本身没有价值,有价值的是“容器编排”. 也正因为如此,容器技术生态才爆发了一场关于“容器编排”的“战争”.而这次战争,最终以 Kubernetes 项目和 CNCF 社区的胜利而告终. 容器,到底是怎么一回事儿? 容器其

  • 教你react中如何理解usestate、useEffect副作用、useRef标识和useContext

    目录 1.usestate 1.1一般使用 1.2 useState回调函数作为参数 2.useEffect副作用 2.1 useEffect副作用及其使用 2.2 useEffect清理副作用 2.3 useEffect发送网络请求 3.自定义hook函数 4.useRef的使用 5.useContext的使用 1.usestate 1.1一般使用 注意:useState 的初始值(参数)只会在组件第一次渲染时生效.也就是说,以后的每次渲染,useState 获取到都是最新的状态值,React

  • 浅谈vue中$event理解和框架中在包含默认值外传参

    在vue中普通方法中默认带有event DOM事件如greet方法,如果是内联函数的话如warn方法,只需要在定义方法的地方同时传入$event即可,这里需要强调的是在iview中,这里用的是select组件,在其on-change事件中如果想要传入自定义的参数,使用直接传参的方式,获取的是传入的参数,那么如何获取到该方法默认的返回值(即不传参数时返回的默认选中值),这里使用 $event传入代表选中的值,如test方法,这里似乎也只要$event可以传入代表选中的值,其他的可能就是普通的参数,

  • Java中难理解的四个概念

    前言 Java 是很多人一直在用的编程语言,但是有些 Java 概念是非常难以理解的,哪怕是一些多年的老手,对某些 Java 概念也存在一些混淆和困惑. 所以,在这篇文章里,会介绍四个 Java 中最难理解的四个概念,去帮助开发者更清晰的理解这些概念: 匿名内部类的用法 多线程 如何实现同步 序列化 匿名内部类 匿名内部类又叫匿名类,它有点像局部类(Local Class)或者内部类(Inner Class),只是匿名内部类没有名字,我们可以同时声明并实例化一个匿名内部类. 一个匿名内部类仅适用

  • 比较完整简洁的Flash处理XML文档数据教程 上篇第1/3页

    准备:首先你得有台电脑,其次是要装上Windows系统和Flash8. XML基础: 既然是处理XML文档,就要先来了解下XML文档.下面是我所了解的,有些是在Flash中用不到的. XML扩展标记语言(Extensible Markup Language)是SGML(Structured Generalized Markup Language)的子集,由World Wide Web Consortium(W3C)的XML工作组定义. 下面开始了解XML的结构.XML是由序言和文档元素组成的.

  • 让 Asp 与 XML 交互

    XML 是标准扩展语言,是 未来Web编程的标准,asp 是现在广为流传的web编程语言之一,能不能让他们 两个联合起来发挥作用呢?豆腐 在 这里 给大家 提供一个 很简单的 例子 关于XML 和 XSL 限于篇幅和知识水平 豆腐就不在这里 献丑了 下面首先来 说说 几个需要用到的文件的 内容 testXsl.xsl: <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl&quo

  • 让Asp与XML交互

    XML 是标准扩展语言,是未来Web编程的标准,asp 是现在广为流传的web编程语言之一,能不能让他们两个联合起来发挥作用呢?豆腐在这里给大家提供一个很简单的例子关于XML和XSL限于篇幅和知识水平豆腐就不在这里献丑了下面首先来说说几个需要用到的文件的内容 testXsl.xsl: <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:tem

随机推荐