0

我目前正在尝试使用 Flex 作为客户端与 API 进行通信。我正在使用 Flash Builders HTTPServices 来执行此操作,这对这一切有点菜鸟。如果访问的 XML 文件元素的格式正确,则一切正常,但是如果我在元素名称中添加连字符,我会收到 flex 警告我的事实,即。返回的对象包含不符合 Actionscript 标识符命名准则的无效名称“created-on”

这有效:

<?xml version="1.0" encoding="UTF-8"?>
<projects type="array">
  <project>
    <createdon>2010-07-10</createdon>
    <name>Project 1</name>
  </project>
</projects>

这不会:

<?xml version="1.0" encoding="UTF-8"?>
<projects type="array">
  <project>
    <created-on>2010-07-10</created-on>
    <name>Project 1</name>
  </project>
</projects>

那么我的问题是如何使返回的 xml actionscript 友好。对此是否有标准或最佳实践?我显然对传递的 xml 没有任何控制权。

干杯

4

3 回答 3

0

为了将来参考,请使用方括号。例如:

private var createdOn:String;

protected function myService_requestHandler(event:ResultHandler):void
{
    createdOn = event.result.projects.project["created-on"];
}
于 2012-02-15T18:04:59.657 回答
0

如果您真的想在没有“-”的情况下访问内容,请将 resultFormat 设置为“text”,然后执行以下操作:

onLoad(event:ResultEvent):void
{
     var result:String = event.result;
     result = result.replace(/created-on/g, 'createdOn');
     var xml:XML = new XML(result);
     // do your processing now...
}
于 2013-04-26T14:10:13.733 回答
-1

resultFormatHTTPService设置为e4xxml。默认值为object,因此 Flex 尝试为 xml 树中的每个元素创建 ActionScript 对象。

<mx:HTTPService resultFormat="xml" other="attributes go here"/>
于 2010-07-20T06:25:40.467 回答