Hello, I have been working on a tree control that's driven by an xml file. What I have be trying to do is to select an item in the tree by first searching the dataProvider, the XML object that represents the xml file.
What I have noticed is that the expressions >, <, and == don't seem to work on attributes in nodes that do not have any children. Remember, this is an xml file for a tree control and I may have items that don't have any children. This to me seems very odd, especially since >= and <= seem to work just fine... I submitted a bug report on the Adobe site but since they won't respond to a bug submittal I figured I'd post it here to see if anyone had a response or experience with my issue. It's really frustrating since this issue is preventing me from accessing a single node in the xml directly. Below is a code example, as simple as possible, I took the file and the tree control out of the equation. (I also based my XML for the example off of sample code from the Flex help docs.) You'll notice what is broken that you'd think would work is trace examples 3,4,and 5 for myXML1 and myXML3. -Jun <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()"> <mx:Script> <![CDATA[ private var myXML1:XML=<order> <book ISBN="1"> <title>Baking Extravagant Pastries with Kumquats</title> <author> <lastName>Contino</lastName> <firstName>Chuck</firstName> </author> <pageCount>238</pageCount> </book> <book ISBN="2" /> <book ISBN="3"> <title>Emu Care and Breeding</title> <editor> <lastName>Case</lastName> <firstName>Justin</firstName> </editor> <pageCount>115</pageCount> </book> </order>; private var myXML2:XML=<order> <book ISBN="1"> <title>Baking Extravagant Pastries with Kumquats</title> <author> <lastName>Contino</lastName> <firstName>Chuck</firstName> </author> <pageCount>238</pageCount> </book> <book ISBN="3" /> <book ISBN="2"> <title>Emu Care and Breeding</title> <editor> <lastName>Case</lastName> <firstName>Justin</firstName> </editor> <pageCount>115</pageCount> </book> </order>; private var myXML3:XML=<order> <book ISBN="1" ></book> <book ISBN="2" ></book> <book ISBN="3" ></book> </order>; private function onCreationComplete():void { // Trace out pieces of myXML1 trace('~~~~ myXML1 START ~~~~'); trace('myXML1 EXAMPLE 1: ' + myXML1.book[0]); trace('myXML1 EXAMPLE 2: ' + myXML1.book.(@ISBN >= 1 && @ISBN <= 3)); trace('myXML1 EXAMPLE 3: ' + myXML1.book.(@ISBN > 1 && @ISBN < 3)); trace('myXML1 EXAMPLE 4: ' + myXML1.book.(@ISBN==2)); trace('myXML1 EXAMPLE 5: ' + myXML1..*.(attribute('ISBN')==2)); trace('~~~~~~~~~~~~~~~~~~~~~~'); // Trace out pieces of myXML2 trace('~~~~ myXML2 START ~~~~'); trace('myXML2 EXAMPLE 1: ' + myXML2.book[0]); trace('myXML2 EXAMPLE 2: ' + myXML2.book.(@ISBN >= 1 && @ISBN <= 3)); trace('myXML2 EXAMPLE 3: ' + myXML2.book.(@ISBN > 1 && @ISBN < 3)); trace('myXML2 EXAMPLE 4: ' + myXML2.book.(@ISBN==2)); trace('myXML2 EXAMPLE 5: ' + myXML2..*.(attribute('ISBN')==2)); trace('~~~~~~~~~~~~~~~~~~~~~~'); // Trace out pieces of myXML3 trace('~~~~ myXML3 START ~~~~'); trace('myXML3 EXAMPLE 1: ' + myXML3.book[0]); trace('myXML3 EXAMPLE 2: ' + myXML3.book.(@ISBN >= 1 && @ISBN <= 3)); trace('myXML3 EXAMPLE 3: ' + myXML3.book.(@ISBN > 1 && @ISBN < 3)); trace('myXML3 EXAMPLE 4: ' + myXML3.book.(@ISBN==2)); trace('myXML3 EXAMPLE 5: ' + myXML3..*.(attribute('ISBN')==2)); trace('~~~~~~~~~~~~~~~~~~~~~~'); } ]]> </mx:Script> </mx:Application>

