Rob, I came across the same problem when trying out various E4X
approaches with delete.  Steve's idea works (with the caveat his removes
populated nodes instead of unpopulated ones, but I fixed that).  

Thanks!


Jason Merrill 

Bank of  America   Global Learning 
Shared Services Solutions Development 

Monthly meetings on the Adobe Flash platform for rich media experiences
- join the Bank of America Flash Platform Community 





-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Rob
Romanek
Sent: Tuesday, June 09, 2009 12:20 PM
To: Flash Coders List
Subject: Re: [Flashcoders] XML find and delete nodes

This might get you pointed in the right direction. You can get an  
XMLList of all the empty nodes by this kind of statement

xml.modules.module.(children().length() == 0);

but if you then try a simple delete on that

delete xml.modules.module.(children().length() == 0);

you get:  Delete operator is not supported with operand of type XMLList.
I'm not sure right now why that wouldn't work. But you could simply  
loop through the XMLList generated and do a delete on each node

var emptyModule:XMLList = xml.modules.module.(children().length() == 0);
var index:int = emptyModule.length() - 1;
for(var i = index; i > - 1; i--){
        delete emptyModule[i];
}
trace(xml);

hth,

Rob

PS so as far as the delete operator I'm not sure why  
delete(xml.modules.module) works while something like  
delete(xm.modules.module.(@title == "apple")) gives an error like  
above. I would think that both those "querries" result in an XMLList,  
in the first case the delete occurs but not in the second... maybe  
some lunch will help my brain work better.





On 9-Jun-09, at 11:02 AM, Merrill, Jason wrote:

> Posted this on Flash_tiger without any luck.  I know about using  
> delete
> in E4X XML to delete unwanted XML nodes, but how would you hunt down
> through and delete any nodes (of a specific type, say "<module>" nodes
> in the example below) that don't have any children?
>
> For example, if myXML happens to look like:
>
> <xml>
>       <modules>
>               <module title="apple"/>
>               <module title="orange">
>                       <node/>
>               <module>
>               <module title="banana">
>                       <node/>
>               <module>
>               <module title="plum"/>  
>               <module title="pear"/>
>               <module title="pineapple">
>                       <node/>
>               <module>
>       </modules>
> </xml>
>
> then with that structure, I would want my code to remove the <module>
> nodes that have the "title" attribute values of "apple", "plum", and
> "pear" since those have no child nodes.
>
> I know I could figure it out through enough trial and error, but I've
> spent enough time on it already.  Thought someone here could give a
> quick answer. Thanks!
>
>
> Jason Merrill
>
> Bank of  America  Global Learning
> Shared Services Solutions Development
>
> Monthly meetings on the Adobe Flash platform for rich media  
> experiences
> - join the Bank of America Flash Platform Community
>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to