AM以bytes.my数据的形式从端口读取数据将类似于
<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>");
工作正常。
请指导我解决。
答案 0 :(得分:1)
答案 1 :(得分:1)
XML类使用全局XML()转换器函数来读取数据的内容。这将无法理解byteArray,因此您需要将byteArray转换为更具可读性的内容。你可以尝试(未经测试):
var xml:XML=new XML(bytes.readUTFBytes(bytes.length));
答案 2 :(得分:1)
您可以使用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.");
}
}
这应该可以正常工作。有关更多信息,您可以与我联系。 希望这会对你有所帮助。