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).

  • 相关阅读:
    CS229 6.4 Neurons Networks Autoencoders and Sparsity
    CS229 6.3 Neurons Networks Gradient Checking
    【Leetcode】【Easy】Min Stack
    【Leetcode】【Easy】Merge Sorted Array
    【Leetcode】【Easy】ZigZag Conversion
    【Leetcode】【Easy】Valid Palindrome
    【Leetcode】【Easy】Reverse Integer
    【Leetcode】【Easy】Palindrome Number
    【Leetcode】【Easy】Length of Last Word
    【Leetcode】【Easy】Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/tinytiny/p/2419264.html
Copyright © 2011-2022 走看看