从端口从端口中bytes.my数据的形式将数据传递到XML()
问题描述:
AM读取数据就会像从端口从端口中bytes.my数据的形式将数据传递到XML()
<book name="xxx">
<title>First</title>
</book>
,我想该数据来在
var xml:XML=new XML();
传递给在我的桌面应用程序运行时显示在网格中。当我通过数据时
var socket:Socket = event.target as Socket;
var bytes:ByteArray = new ByteArray();
socket.readBytes(bytes);
var xml:XML=new XML(bytes);
它不工作。但是当我通过
var xml:XML=new XML("<book name="xxx"><title>First</title></book>");
工作正常。
请指导我解决。
答
XML类使用全局XML()转换函数来读取数据的内容。这不会理解byteArray,因此您需要将您的byteArray转换为更具可读性的内容。您可以尝试(未经测试):
var xml:XML=new XML(bytes.readUTFBytes(bytes.length));
答
您可以使用URLRequest加载您的XML文件。通过这个请求,你可以加载你的数据和一个eventlistener,你可以使用加载的数据将它解析成XML。
下面是一个例子。
protected function getXMLfile():void
{
// TODO Auto-generated method stub
try{
var req:URLRequest = new URLRequest("yourURL");
var loader:URLLoader = new URLLoader(req);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
loader.load(req);
}
catch(err:Error){
Alert.show(err.message);
}
}
private function loaderCompleteHandler(evt:Event):void {
try {
var niveau:uint = 0;
var xmlFile:XML = new XML(evt.target.data);
} catch (err:Error) {
Alert.show("Could not parse the XML file.");
}
}
这应该很好。欲了解更多信息,请联系我。 希望这会帮助你。