To get XML from an expression, do: var theNodeIWant : XML = myDataSet.myElement.(@someAttr == "foo")[0];
Expressions always return an XMLList. If no records are found, then the list has zero length, so using length() is the way to do this. Tracy ________________________________ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of David Ham Sent: Monday, March 24, 2008 11:57 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] e4x 101 -- Help get it through my thick skull Hi, I'm working with webservice xml data in XML format, and the e4x is giving me a little trouble. Am I right on these points: * All e4x operations return an XMLList. I've been trying to get them to return XML, like: var theNodeIWant : XML = myDataSet.myElement.(@someAttr == "foo") but it seems this is wrong; I should just expect an XMLList, and even if I know for sure that the result is one element long, I should just use the pertinent XML methods on the XMLList, since one-element XMLLists just pass these calls to the element. * To test for emptiness or undefined-ness, do I do this: var theNodeIWant : XML = myDataSet.myElement.(@someAttr == "foo") if ( theNodeIWant.length() == 0 ) { // e4x query returns no results } Is length() the only way to do this, or is there a more accurate way that would return null or undefined? I get the sense that e4x is really powerful, but it's kind of different and it's been busting my balls lately. Thanks much, OK DAH