That comment should read:
// Returns all node elements with the named attribute that equals value.
- Keith
From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On
Behalf Of Keith Reinfeld
Sent: Monday, August 17, 2009 1:15 PM
To: flexcoders@yahoogroups.com
Subject: RE: [flexcoders] Re: XMLFiltering by attributes and values
This works well:
var _trackData:XML = track
item uniqueTrackId=100 albumId=12 trackId=1 genreId=13
artistId=6584/
item uniqueTrackId=101 albumId=13 trackId=2 genreId=14
artistId=6580/
item uniqueTrackId=102 albumId=14 trackId=3 genreId=15
artistId=6584/
item uniqueTrackId=103 albumId=15 trackId=4 genreId=16
artistId=6583/
/track;
function doXMLFilter(nodes:XML,att:String,val:String):XMLList{
// Returns all node elements with an attribute that equals
value.
return nodes.elements(*).(@[att.toString()] == val);
}
var _data:XMLList = doXMLFilter(_trackData,artistId,6584);
trace(_data.toXMLString());
- Keith
From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On
Behalf Of valdhor
Sent: Monday, August 17, 2009 11:15 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: XMLFiltering by attributes and values
I haven't looked at your code too much but what jumped out at me is this
line...
filterData = filterData.(attribute(prop.name) == prop.value);
This will try to evaluate attribute as a function with parameter prop.name
and then compare that to prop.value returning a boolean. So, the upshot is
that Flex will try to evaluate filterData.true or filterData.false. I'm
pretty sure that won't work.
--- In flexcoders@yahoogroups.com mailto:flexcoders%40yahoogroups.com ,
fatmanchan2009 fatmanchan2...@... wrote:
Hello
Can anyone figure out this problem im currently having, and explain the
reasons and cause of this proplem.
I have an XML file of track data with a bunch of attributes
track
item uniqueTrackId=100 albumId=12 trackId=1 genreId=13
artistId=6584
...
/track
i use this code to execute the filtering on the data, the name is artistId
and the value is 6584, so the data should come back with all the artists
with artistId 6584.
var filterData : XMLList = _trackData.item;
for each (var prop : Object in _propertiesList)
{
filterData = filterData.(attribute(prop.name) == prop.value);
}
but i keep getting this exception, when its applyin the filter, so within
the for loop
TypeError: Error #1006: value is not a function.
So anyone that can figure what the problem is, would be a big help Thank
You
Stephen Chan
image001.jpgimage002.jpg