加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash学习笔记(五)--关于XML知识【重点】

发布时间:2020-12-15 06:16:01 所属栏目:百科 来源:网络整理
导读:第十三章 Flash和XML集成开发 1.????????W3CDOM处理XML文档: 1????新建XML文档xml.xml 2????创建XMLDocument对象、解析文档: import flash.xml.XMLDocument; import flash.net.URLRequest; import flash.display.Loader; ? function xmlLoader(evt:Event):

第十三章 Flash和XML集成开发

1.????????W3CDOM处理XML文档:

1>????新建XML文档xml.xml

2>????创建XMLDocument对象、解析文档:

import flash.xml.XMLDocument;

import flash.net.URLRequest;

import flash.display.Loader;

?

function xmlLoader(evt:Event):void{

var myDoc:XMLDocument = new XMLDocument();

myDoc.ignoreWhite= true;

myDoc.parseXML(myLoader.data);

varmyVar:String = myDoc.firstChild.firstChild.firstChild.firstChild.nodeValue;

trace(myVar);

}

?

var myXMLURL:URLRequest = newURLRequest("xml.xml");

var myLoader:URLLoader = newURLLoader(myXMLURL);

myLoader.addEventListener(Event.COMPLETE,xmlLoader);

2.????????使用XMLNode对象处理XML文档:

注意:XMLNode是XMLDocument的基类,所以XMLNode的属性方法,后者同样可用!

1>????Attributes集合:返回一个包含指定节点所有属性的对象。

var str:String = "<area state ="广东省">广州</area>";

var doc1:XMLDocument = newXMLDocument(str);

var node:String =doc1.firstChild.attributes.state;

trace(node);

或者:

var attrs:Object =doc.firstChild.attributes;

for(var prop in attrs){

trace(prop+"="+attrs[prop]);

}

2>????childNodes集合:返回一个包含指定节点所有子节点的数组。

var node1:Array =doc1.firstChild.childNodes;

trace("3"+node1[0]);

3.????????使用E4X处理XML:

1>用于实现E4X的AS类

var myXML:XML =

<list>

<area state="广东省">广州</area>

<area state="山东省">济南</area>

</list>;

?

trace(myXML.area[0].toXMLString());

2>创建XML对象和XMLList对象:

? vartagname:String = "area";

var attributename:String ="atate";

var attributevalue:String = "广东省";

var content:String = "广州";

?

var my:XML = <{tagname}{attributename}={attributevalue}>{content}</{tagname}>;

trace(my.toXMLString());

3>????外部加载和Document一样

4>????“.”子元素访问;? ”..”后代访问;? ”@”属性访问;? ”*”通配符

4.????????修改XML结构

???????? myDoc.name[0].first= "1leverling";

对于命名空间:其实XML里的命名空间的作用与其它语言(如C#)中命名空间的作用差不多:为命名提供一个容器,只要在该容器中没有相同的命名就可以避免命名冲突。

5.????????修改XML命名空间:

1>读取命名空间:

Xmlns:zhuozi=”heep://www.baidu.com”;

Var tableNs:Namespace = myXML.namespace(“zhuozi”);

2>增加/修改命名空间:

????? myXML.addNamespace(newNS);

????? myXML.table.setNamespace(newNS);

3>????QName:限定

6.????????XMLSocket对象信息处理方法:

1>????当调用connect打开对服务器的TCP/IP连接并处于打开状态,直到一下情况之一发生!

XMLSocket对象close方法被调用

不再有XMLSocket对象参数存在

Flash Player退出

2>????XMLSocket与安全:

只能够连接到端口号大于或者等于1024的TCP端口。同样子域进行访问,或者跨域文件!

3> ? 网页资料: ?

as3 socket 读写数据方法常用的有四个:readUTF,writeUTF,readUTFBytes,?writeUTFBytesjavasocket 输入输出流常用BufferedReader DataOutputStream 包装,以提高读写效率
:
????BufferedReaderreader = new BufferedReader(new InputStreamReader(socket.getInputStream(),????"UTF-8"));

????DataOutputStreamwriter = new DataOutputStream(socket.getOutputStream());

as3 方写数据时用writeUTFBytes 方法,此时java 方读数据用reader.readLine()阻塞式方法.
as3
方写数据时用writeUTF方法,此时java 方应改用DataInputStream 类包装输入流,因为BufferedReader 不提供读取UTF数据的方法.
java
方写数据时用writeUTF方法,此时as3 方读数据用readUTF方法,但此种模式有个弊端,就是如果java方连续调用了n(n >= 2)writeUTF方法,as3方因来不及读取,则最后只是第一次写入的数据被读取.
java
方写数据时用writeBytes,此时as3 方读数据用readUTFBytes方法读取数据,可以这样读取: msg = socket.readUTFBytes(socket.bytesAvailable).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读