我是AS的新手,我假设有一种方法可以做到这一点,我只是想不出来。基本上,我试图使用一个返回xml的服务并返回一个Object,而不管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>;
只需将其转换为对象 - 这是否可以在不编写自己的解析器的情况下实现?谢谢。
答案 0 :(得分:5)
ActionScript有自己的XML
解析器,因此您无需编写自己的解析器。
如果您要转换String
,则可以将其转换为XML
内联,只需几行代码:
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"
否则你可以用这种方式在运行时加载它:
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
希望这会有所帮助。侨!
答案 1 :(得分:3)
您可以使用HTTPService
这里有一个很好的例子......
基本上,当您检索结果时,它会将结果序列化为XML中的对象。