0

我对 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>; 

并简单地将它变成一个对象- 如果不编写我自己的解析器,这可能吗?谢谢你。

4

2 回答 2

5

ActionScript 有自己的XML解析器,您无需编写自己的解析器。

来自字符串的 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"

来自外部文件的 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

希望这可以帮助。再见!

于 2011-02-08T03:30:52.337 回答
3

您可以使用HTTPService

这里有一个很好的例子......

基本上,当您检索结果时,它会将结果从 XML 序列化为一个对象。

于 2011-02-08T03:20:31.860 回答