0

私は applicationStorageDirectory にある XML ファイルを持っています。その内容を ArrayCollection にロードする必要があります。

XML は (以下を参照) のように見えますが、読み書きはできますが、データグリッドにロードできるようにデータを ArrayCollection に貼り付ける必要があります。

<?xml version="1.0" encoding="utf-8"?>
<item>
 <sort>2012/10/31PM0000</sort>
 <date>Wed Oct 31 2012</date>
 <event>Halloween</event>
 <time>12:00 PM</time>
</item>
<item>
  <sort>2012/09/13AM0000</sort>
  <date>Thu Sep 13 2012</date>
  <event>Enter Details</event>
  <time>12:00 AM</time>
</item>

HTTP サービスで url="app-storage:/reminder.xml" を使用できることがわかりました。これは Air で動作しますが、Android アプリについては知らず、しばらく様子を見る必要があります。

<s:HTTPService id="reminderXML" url="app-storage:/reminder.xml" result="reminderDataHandler(event)" fault="faultHandler(event);"/>
4

1 に答える 1

0

XML/XMLList を ICollectionView に変換する次のユーティリティを試してみてください。これを使用してデータグリッドにバインドできます。

    public static function toCollection( value:Object ):ICollectionView
    {
        var collection:ICollectionView;

        collection = null;
        if (value is Array)
        {
            collection = new ArrayCollection(value as Array);
        }
        else if (value is ICollectionView)
        {
            collection = ICollectionView(value);
        }
        else if (value is IList)
        {
            collection = new ListCollectionView(IList(value));
        }
        else if (value is XMLList)
        {
            collection = new XMLListCollection(value as XMLList);
        }
        else if (value is XML)
        {
            var xl:XMLList = new XMLList();
            xl += value;
            collection = new XMLListCollection(xl);
        }
        else
        {
            // convert it to an array containing this one item
            var tmp:Array = [];
            if (value != null)
                tmp.push(value);
            collection = new ArrayCollection(tmp);
        }

        return collection;
    }
于 2012-09-14T04:08:09.843 に答える