`
obullxl
  • 浏览: 183239 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

解析XMLSocket返回值XML文档

    博客分类:
  • Flex
阅读更多

今天学习XMLSocket,可是在拿到XML字符串数据后,不知该如何解析,JavaEye真是个好地方,终于找到了思路:

http://xiaoer-1982.iteye.com/blog/500333

 

首先由XML得到XMLList,然后构造出XMLListCollection,最后得到Array,最后构造ArrayCollection。

 

原始XML字符串:

<response>

   <resp time="" no="" lat="" lng="" />

   <resp ............ />

</response>

 

var response:XML = new XML(event.data);
 
 var xmlListColl:XMLListCollection = new XMLListCollection();
 xmlListColl.source = response.elements("resp");
 
 var arr:Array = xmlListColl.toArray();
 
 var arrColl:ArrayCollection = new ArrayCollection();
 arrColl.source = arr;
 
 for(var i:int = 0; i < arrColl.length; i++)
 {
  var resp:Object = arrColl.getItemAt(i);
  result.text += resp.@time + ":" + resp.@no + "[" + resp.@lat + ", " + resp.@lng + "]\n";
  txtiptName.text = resp.@no;
  this.onChange(1);
 }

 

将整个AS文件发上来:

 

/**
 * ActionScript file for ArrayCarDemo.mxml
 */

import flash.events.DataEvent;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;
import flash.net.Socket;
import flash.net.XMLSocket;
import flash.system.Security;
import flash.xml.XMLDocument;

import mx.collections.ArrayCollection;
import mx.collections.XMLListCollection;
import mx.rpc.xml.SimpleXMLDecoder;

private var socket:Socket;
private var xmlSocket:XMLSocket;

private function onConnect():void
{
	result.text += "==>开始连接......\n";
	
	Security.loadPolicyFile("xmlsocket://GMapWeb:9999");
	
	xmlSocket = new XMLSocket();
	xmlSocket.connect("GMapWeb", 9999);
	
	xmlSocket.addEventListener(Event.CONNECT, onConnected);
	xmlSocket.addEventListener(Event.CLOSE,onClosed);
	xmlSocket.addEventListener(DataEvent.DATA,onRecvData);
	
	xmlSocket.addEventListener(IOErrorEvent.IO_ERROR, onIoError);
	xmlSocket.addEventListener(ProgressEvent.PROGRESS, onProgress);
	xmlSocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecureError);
}

private function onIoError(evt:IOErrorEvent):void
{
	result.text += "IO错误:" + evt.text + "\n";
}

private function onProgress(evt:ProgressEvent):void
{
	result.text += "Progress:" + evt.target.toString() + "\n";
}

private function onSecureError(evt:SecurityErrorEvent):void
{
	result.text += "安全错误:" + evt.text + "\n";
}

internal function onConnected(event:Event):void
{
	// xmlSocket.send("<test/>\n");
	if(xmlSocket.connected)
	{
		result.text += "已经成功连接到服务器\n";
	}
	else
	{
		result.text += "失败:连接到服务器\n";
	}
}

internal function onClosed(event:Event):void
{
	result.text += "已经断开服务器\n";   
}

private function onRecvData(event:DataEvent):void
{
	var response:XML = new XML(event.data);
	
	var xmlListColl:XMLListCollection = new XMLListCollection();
	xmlListColl.source = response.elements("resp");
	
	var arr:Array = xmlListColl.toArray();
	
	var arrColl:ArrayCollection = new ArrayCollection();
	arrColl.source = arr;
	
	for(var i:int = 0; i < arrColl.length; i++)
	{
		var resp:Object = arrColl.getItemAt(i);
		result.text += resp.@time + ":" + resp.@no + "[" + resp.@lat + ", " + resp.@lng + "]\n";
		txtiptName.text = resp.@no;
		this.onChange(1);
	}
	
	result.text += "------------------------";
	result.verticalScrollPosition = result.maxVerticalScrollPosition;
}

private function sendXml():void
{
	//xmlSocket.send("<msg>" + message.text + "</msg>");   
	//result.text += message.text + "\n";   
	//message.text = "";
}

 

 

分享到:
评论

相关推荐

    xml精讲帮助文档 两个打包

    1. DOM(Document Object Model):Java中,XML解析的一种方式是DOM,它一次性加载整个XML文档到内存,形成一棵节点树,方便遍历和操作。 2. SAX(Simple API for XML):另一种解析方式是SAX,它是基于事件驱动的,...

    flash中的XMLSocket 类

    - **XML消息格式**: 每个XML消息都是一个完整的XML文档,并以零字节作为结束标记。 - **消息数量**: 通过XMLSocket连接发送和接收的XML消息数量没有限制。 #### 四、XMLSocket对象的连接限制 1. **端口限制**: ...

    javascript xmlsocket 即时通讯客户端源码

    XMLSocket通常会将接收到的原始数据转换为可读的格式,如JSON或XML。 5. 错误处理 XMLSocket必须处理各种可能的错误情况,如网络中断、服务器错误等。这通常涉及关闭连接并重新尝试连接的逻辑。 四、实际应用 ...

    flash 加载 xml 的几种方法

    在Flash开发中,XML(可扩展标记语言)是一种常见的数据交换格式,因为它结构清晰、易于解析且支持跨平台。在本文中,我们将深入探讨几种在Flash中加载XML的方法,主要针对ActionScript 2(AS2),这是Flash Player ...

    解决xmlsocket 需要的843端口

    XMLSocket是一种基于XML的数据传输协议,常用于实时通信,如Flash中的Socket连接。在Web应用中,如果使用了XMLSocket,通常需要开放特定的端口,例如843端口,这是Adobe Flash Player用于建立SSL(Secure Socket ...

    JAVA/XMLSOCKET

    XMLSocket的优点在于其简单性和直接性,但缺点是不支持跨域通信,并且XML的解析和生成相对于JSON来说更复杂、效率更低。因此,在现代Web应用中,更多地倾向于使用WebSocket,因为它提供了类似的功能,同时解决了...

    XML_Website_flash源码_

    1. **XML基础**:了解XML的基本结构,包括元素、属性、命名空间以及如何解析和操作XML文档。 2. **Flash ActionScript**:掌握ActionScript的基础语法,包括变量、函数、类和事件处理,以及如何使用它来与XML数据...

    flash+xml.rar_FLASH XML_flash java

    ActionScript提供了XML类库,允许开发者轻松地处理XML文档。XML对象可以被创建、加载、解析,并且其节点可以被遍历、修改或添加。此外,Flash还可以通过E4X(ECMAScript for XML)提供更简洁的语法来操作XML,使得...

    AS3中文版帮助文档

    7. **网络编程**:AS3提供了XMLSocket、URLLoader和XML等类来实现网络通信,包括加载和解析XML、JSON数据,以及发送HTTP请求。 8. **错误处理**:AS3的错误处理机制通过Error类和try...catch语句实现,可以帮助...

    FLASH通过XMLSocket与VB后台通信代码

    在Flash和VB之间的通信中,XML常用于结构化数据的交换,便于解析和理解。 6. **安全性与限制**: - 由于Flash的XMLSocket通信是基于TCP/IP的,可能会受到防火墙和安全策略的影响。开发者需要确保通信的合法性,并...

    flash actionscript3游戏开发之as3的socket通信方式介绍即使用XMLSocket.zip

    5. 问题处理:在数据传输过程中,可能会遇到各种问题,如网络延迟、数据包丢失或错误的数据解析。开发者需要编写健壮的错误处理代码,确保在网络不稳定时也能保持游戏的正常运行。例如,可以使用心跳机制来检测连接...

    LoadXML.rar_flex

    DOM将整个XML文档转化为一棵节点树,可以方便地遍历和操作XML数据。 - **E4X(ECMAScript for XML)**:Flex支持E4X,这是一种内置在ActionScript 3中的XML处理方式,它允许开发者像处理JavaScript对象一样处理XML...

    graflife flash xml统计图表(饼图)源文件.rar

    Flash能够通过XMLSocket或者URLLoader类加载XML文件,解析其内容,然后根据这些数据生成饼图。在ActionScript中,我们可以使用XML对象的parseXML方法解析XML字符串,再通过遍历XML节点,获取每个扇区的数值和属性。...

    XMLSocketDemo

    1. **XMLSocket接口**:虽然名字里有XML,但XMLSocket实际上与XML无关,而是JavaScript中一个早期的实验性API,用于实现双向通信。它不是HTML5 WebSocket规范的一部分,但在某些老旧的环境中可能仍然被使用。 2. **...

    as3,php和mysql之间的连接及使用数据

    1. **AS3中的XML处理**:AS3提供内置的XML类来解析和操作XML文档。可以使用`XML`对象加载XML文件,解析其内容,并通过属性和方法进行修改。 2. **PHP中的XML处理**:PHP有多种处理XML的工具,如SimpleXML,DOM...

    flash+xml相册自适应大小[非常好用-而且有源文件可修改]

    3. **Flash与XML的结合**:Flash可以通过XMLSocket或URLLoader等类来加载和解析XML文件。在相册应用中,XML文件可以存储所有图片的信息,Flash则负责根据这些信息动态生成相册界面。 4. **自适应大小**:相册能...

    Flash AS3 中文帮助文档

    5. **XML和JSON**:AS3提供了XML类用于解析和操作XML数据,同时也支持JSON(JavaScript Object Notation)数据格式,这在与服务器进行数据交换时非常常见。 6. **错误处理**:通过try...catch语句进行异常处理,...

    flash xmlsocket实例源码

    flash xmlsocket实例源码

    首页flash聊天室(flash + php + xml)

    Flash发送用户输入的消息到PHP服务器,这些消息通常被封装成XML文档,PHP解析XML并处理其中的数据,然后再将响应数据以XML形式返回给Flash。 具体实现流程如下: 1. 用户打开chat.html页面,页面中加载了cHAT.swf这...

    flash8.0 ActionScript2.0 电子文档

    - **XML操作**:解析和操作XML数据,实现数据交换。 7. **错误处理** - **异常处理**:学习如何使用try...catch语句处理运行时错误。 8. **优化与调试** - **性能优化技巧**:了解如何编写高效的ActionScript...

Global site tag (gtag.js) - Google Analytics