我从ASP.NET获取了一个对象,在跟踪它时,如下所示:
var xml:XML = new XML(event.message.body);
trace(xml);我得到以下输出:
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost:49329/">
<string>One</string>
<string>Two</string>
<string>Three</string>
</ArrayOfString>我试图迭代该结构以提取字符串,但无济于事。我使用了以下代码:
for each(var item:Object in xml.children())
{
MonsterDebugger.trace(this, item.toString());
}...and我知道这并不完全有效。它现在可以工作了,但是有一种方法可以使用@符号通过一些语法来获取字符串。
有没有人能给点建议?
发布于 2009-11-12 21:48:30
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost:49329/">
<string>One</string>
<string>Two</string>
<string>Three</string>
</ArrayOfString>您还必须处理命名空间:
var ns:Namespace = new Namespace("http://localhost:49329/");
var strings:XMLList = xml.ns::string;
for each(var str:XML in strings)
trace(str.text());发布于 2009-11-12 21:38:03
你已经很好地掌握了。应该能够像这样编写相同的循环:
for each( var el:XML in xml.string ) {
trace( el.toString() );
}看看这些e4x docs,这些都是为Flex准备的,但它们都适用,因为它只是AS3。正如您所看到的,这些内容中的许多文档的状态都有些不稳定:)
发布于 2011-03-14 23:32:05
您可以通过使用SimpleXML来阅读我对AS3 - Deepest XML Elements的回答,您可以以一种易于使用的方式解析您的SimpleXML。
https://stackoverflow.com/questions/1722188
复制相似问题