0

XMLListCollection で特定の値を見つけたいです。

このようなものを使用しようとしていますが、うまくいきません!

var xmllisteRDV:XMLList= XML(event.result).RDVClinik;
xmlCollSuivi = new XMLListCollection(xmllisteRDV);
var index:Number = -1;
for(var i:Number = 0; i < xmllisteRDV.length(); i++)
{
    if(XML(xmllisteRDV[i]).@grDateDeb == todayDate)
    {
        index = i;
        break;
    }
}
4

2 に答える 2

0

まず、元のコードのエラーを指摘してみます。

var xmllisteRDV:XMLList= XML(event.result).RDVClinik;  //Unnecessary cast, event.result is Object compiler will not check or know the run-time type, doesn't care because Object is declared dynamic meaning properties can be added to it dynamically, if RDVClinik didn't exist on the particular Object type it would simply be null casting as XML gives it no information about this "property"
xmlCollSuivi = new XMLListCollection(xmllisteRDV);
 var index:Number = -1;
        for(var i:Number = 0; i < xmllisteRDV.length(); i++) //length is a property not a method on XMLListCollection this should throw a compile time error
        {
            if(XML(xmllisteRDV[i]).@grDateDeb == todayDate)// I see no type when debugging for the result of xmllisteRDV[i] not positive here but this cast is at the least unnecessary
            {
                index = i;
                break;
            }
        }

これは、todayDateの構築方法を変更することでおそらく機能すると思うバージョンです

var date:Date = new Date();
var todayDate:String = date.dateUTC+"/"+date.dayUTC+"/"+date.fullYear;
var index:int=-1;
for(var i:int = 0; i < flex3Projects.length; i++)
{
    trace(xmllisteRDV[i].@grDateDeb)
    if(xmllisteRDV[i].@grDateDeb.toString() == todayDate)
    {
        index = i;
        break;
    }
}
于 2012-05-29T00:06:40.533 に答える