我从ASP.NET获取一个对象,并在跟踪XML时如下:
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());
}
......我知道这并不完全有效。它现在可以工作了,但是有一种方法可以使用@符号来获取带有一些语法的字符串。
有人可以提供建议吗?
答案 0 :(得分:2)
你已经得到了它。应该能够像这样编写相同的循环:
for each( var el:XML in xml.string ) {
trace( el.toString() );
}
看看这些e4x docs,这些是针对Flex的,但这一切都适用,因为它只是AS3。正如你所看到的,关于很多这些东西的文档状态有点不稳定:)
答案 1 :(得分:1)
<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());
答案 2 :(得分:0)
您可以阅读我对AS3 - Deepest XML Elements的回答 通过使用SimpleXML,您可以以易于使用的方式解析XML。