Превратить строку XML в объект в ActionScript - PullRequest
0 голосов
/ 08 февраля 2011

Я довольно новичок в AS, и я предполагаю, что есть способ сделать это, и я просто не понимаю этого. По сути, я пытаюсь использовать службу, которая возвращает xml и возвращает объект независимо от структуры xml. В .Net я использую класс XmlSerializer.Deserialize ... есть ли эквивалент в AS?

Мне удалось найти SimpleXMLDecoder , но я не могу заставить его работать - похоже, он может работать только с узлами? В любом случае, примеры там редки и трудны для подражания, я просто хочу знать, как взять xml следующим образом:

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<Company>
    <Id>2</Id>
    <Name>Stan</Name>
    <Size>10</Size>
</Company>; 

И просто превратить его в Объект - это возможно без написания моего собственного парсера? Спасибо.

Ответы [ 2 ]

5 голосов
/ 08 февраля 2011

ActionScript имеет свой собственный анализатор XML, поэтому вам не нужно писать свой.

XML из строки

Если у вас есть String для преобразования, вы можете простопреобразовать его как XML inline с несколькими строками кода, например:


import flash.xml.*;

var xml : XML = XML( '<?xml version="1.0" encoding="utf-8"?><Company><Id>2</Id><Name>Stan</Name><Size>10</Size></Company>' );

trace( 'Id:' + xml.Id ); // Should trace "2"
trace( 'Name:' + xml.Name ); // Should trace "Stan"

XML из внешнего файла

В противном случае вы можете просто загрузить его во время выполнения следующим образом:


import flash.net.*;
import flash.events.*;
import flash.xml.*;

var xmlLoader : URLLoader = new URLLoader();
xmlLoader.addEventListener( Event.COMPLETE, doStuffWithLoadedXML );

function doStuffWithLoadedXML( e : Event ) : void 
{                             
    var xml : XML = new XML( e.target.data );
    trace( 'Id:' + xml.Id ); // Should trace "2"
    trace( 'Name:' + xml.Name ); // Should trace "Stan"
}

xmlLoader.load( new URLRequest( 'yourfile.xml' ) );

Отредактировано со ссылками

Несколько приятных ссылок для начала работы:

Основные http://blog.theflashblog.com/?p=242

Несколько полезных советов по E4X и инструкции http://www.senocular.com/flash/tutorials/as3withflashcs3/?page=4

Надеюсь, это поможет.Ciao!

3 голосов
/ 08 февраля 2011

Вы можете использовать HTTPService

Здесь есть хороший пример ...

По существу, он будет сериализовать результат в объект из XML при его получении.

...