1

サーバーから動的 XML データを受信するアプリケーションがあります。XML の構造は動的であり、タグ/属性名は予測できません。行項目はハードコーディングできません。データはデータベースから返され (列と行を想像してください)、データの型はサーバー側で認識されています。以下は単なる例であり、データがどのように返されるかの構造のみを示しています。

<dataset>
    <row>
        <firstName value="Chris" type="String"/>
        <lastName value="McDonald" type="String"/>
        <age value="24" type="Integer"/>
    </row>
    <row>
        <firstName value="Bob" type="String"/>
        <lastName value="Bourne" type="String"/>
        <age value="43" type="Integer"/>
    </row>
</dataset>

次のように、そのデータを配列コレクションの型付き値にどのように取得できるか/できるかどうか疑問に思っています。

public var arr:ArrayCollection = new ArrayCollection(
    [firstName:"Chris", lastName:"McDonald", age:24], ...); // Note that age is an integer, not a string

前もって感謝します

4

1 に答える 1

2

はい、できると思います。これが役立つかどうかを確認してください:

 public function parseXML(datasetXML:String):ArrayCollection {
  var a:Array = new Array();
  var xml:XML = new XML(datasetXML);
  xml.ignoreWhitespace = true;
  var rows:XMLList = xml.row;
  for each (var row in rows) {
    a.push(getObject(row));
  }
}
public function getObject(xml:XML):Object {
  var obj:Object = new Object();
  for each (var column in xml.elements()) {
    if (column.@type == "String") {
      obj[column.localName()] = column.@value;
    }else if(column.@type = "Integer") {
      obj[column.localName()] = int(column.@value);
    }
  }
  return obj;
}

于 2010-02-02T07:34:08.170 に答える