0

我从 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());
}

...而且我知道这并不完全有效。它现在可以工作了,但是有一种方法可以使用 @ 符号获取具有某种语法的字符串。

有人可以请教吗?

4

3 回答 3

2

你已经明白了。应该能够像这样编写相同的循环:

for each( var el:XML in xml.string ) {
  trace( el.toString() );
}

看看这些e4x 文档,这些是针对 Flex 的,但它都适用,因为它只是 AS3。正如你所看到的,很多这些东西的文档状态有点不稳定:)

于 2009-11-12T13:38:02.917 回答
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());
于 2009-11-12T13:48:30.350 回答
0

您可以阅读我对AS3 - Deepest XML Elements的回答 通过使用 SimpleXML,您可以以一种易于使用的方式解析您的 XML。

于 2011-03-14T15:32:04.730 回答