在 Actionscript 中将 XML 字符串转换为对象

发布于 2024-10-16 21:37:59 字数 536 浏览 6 评论 0原文

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

并简单地将它变成一个 Object - 这是否可以在不编写我自己的解析器的情况下实现?谢谢。

I am pretty new to AS, and I am assuming there is a way to do this and I am just not figuring it out. Basically, I am trying to use a service that returns xml and return an Object regardless of the structure of the xml. In .Net I use the XmlSerializer.Deserialize class... is there equivalent in AS?

I was able to find SimpleXMLDecoder but I can't seem to get it to work - it also looks like it might only work with nodes? Either way, the examples out there are sparse and hard to follow, I just want to know how to take xml like this:

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

And simply turn it into an Object - is this possible without writing my own parser? Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清风不识月 2024-10-23 21:37:59

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.senoptic.com/flash/tutorials/as3withflashcs3/?page =4

希望这有帮助。再见!

ActionScript has its own XML parser then you don't need to write yours.

XML from a String

If you have a String to convert, you can just convert it as XML inline with few lines of code like this:


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 from an external file

Otherwise you can just load it in runtime in this way:


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

Edited with links

Some nice links to start working:

The Basic
http://blog.theflashblog.com/?p=242

Some nice E4X tips and how-to
http://www.senocular.com/flash/tutorials/as3withflashcs3/?page=4

Hope this helps. Ciao!

春庭雪 2024-10-23 21:37:59

您可以使用 HTTPService< /code>

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

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

You can use the HTTPService

There's a good example here...

Basically it will serialize the result into an object from XML when you retrieve it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文