передача данных из порта в xml () - PullRequest
0 голосов
/ 31 марта 2011

AM чтение данных из порта в виде байтов. Мои данные будут выглядеть как

<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>"); 

отлично работает.

Пожалуйста, направьте меня, чтобы решить.

Ответы [ 3 ]

1 голос
/ 31 марта 2011

Класс XML использует глобальную функцию конвертера XML () для чтения содержимого данных. Это не будет понимать byteArray, поэтому вам нужно будет преобразовать ваш byteArray во что-то более читаемое. Вы можете попробовать (не проверено):

var xml:XML=new XML(bytes.readUTFBytes(bytes.length));
1 голос
/ 31 марта 2011

Вы можете загрузить свой XML-файл с помощью URLRequest. С помощью этого запроса вы можете загрузить свои данные, а с помощью 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.");
                }
            }

Это должно работать нормально. Для получения дополнительной информации вы можете связаться со мной. Надеюсь, это поможет вам.

1 голос
/ 31 марта 2011

Если вы собираетесь использовать сокет только для данных XML, я предлагаю вам взглянуть на XMLSocket.

Объект XML не ожидает получения байтов в своем конструкторе, который вы в данный момент даете ему. Вот почему это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...