zoukankan      html  css  js  c++  java
  • flash学习笔记(五)关于XML知识【重点】

    第十三章 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).

  • 相关阅读:
    数据库连接池
    Apache- DBUtils框架学习
    权限表的设计
    Java的I/O对文件的操作
    Java下载文件
    Java连接MySQL数据库
    C#用log4net记录日志
    C#多线程和线程池
    C#利用反射动态调用DLL并返回结果,和获取程序集的信息
    CephRGW 在多个RGW负载均衡场景下,RGW 大文件并发分片上传功能验证
  • 原文地址:https://www.cnblogs.com/tinytiny/p/2419264.html
Copyright © 2011-2022 走看看