0

現在、Flex をクライアントとして使用して API と通信しようとしています。そのために Flash Builders HTTPServices を使用しています。アクセスされた XML ファイルの要素が正しくフォーマットされていれば、すべて正常に動作しますが、要素名にハイフンを追加すると、flex がその事実を警告します。返されたオブジェクトには、Actionscript 識別子の命名ガイドラインに準拠していない無効な名前「create-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 アクションスクリプトを使いやすくするにはどうすればよいかということです。これに関する標準またはベストプラクティスはありますか? 明らかに、渡されるxmlを制御することはできません。

乾杯

4

3 に答える 3

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 に答える
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 に答える
-1

のresultFormatをまたはに設定しHTTPServiceます。デフォルト値はであるため、Flex は xml ツリーの各要素に対して ActionScript オブジェクトを作成しようとします。e4xxmlobject

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