You saved my day! Thanks. Do you know if it's possible to edit attributes of any given xml node?
<node attribute="phil"/> change to <node attribute="jason"/> --- In [email protected], "Jason Hawryluk" <[EMAIL PROTECTED]> wrote: > > I had mentioned it was un tested :) > > try the below (its tested), should get your on the right track, and i'm sure > it can be improved just a quick sample. > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application creationComplete="stripoutlevel()" > xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> > > > <mx:Script> > <![CDATA[ > > public var myXML:XML = new XML("<root>" + > "<level1>" + > "<level2><level3></level3><level3></level3></level2>" + > "<level2></level2>" + > "</level1>" + > "<level1>" + > "<level2><level3></level3><level3></level3></level2>" + > "</level1>" + > "</root>"); > > > public function stripoutlevel():void{ > > var tempLevel1:XML; > for each (var item:XML in myXML..level2) { > if (item.children().length() !=0){ > tempLevel1 = item.parent(); > tempLevel1.appendChild(item..level3.copy()); > } > delete myXML..level2[item.childIndex()]; > } > > trace(myXML); > > > } > > ]]> > </mx:Script> > > > > </mx:Application> > > > -----Message d'origine----- > De : [email protected] [mailto:[EMAIL PROTECTED] la > part de phipzkillah > Envoyé : mercredi 10 janvier 2007 23:01 > À : [email protected] > Objet : [flexcoders] Re: XML manipulation > > > I can't seem to get that to work... > > --- In [email protected], "Jason Hawryluk" <jh@> wrote: > > > > Yes in that case you would, and before deleting the level 2 append > level3 to > > level 2's parent. > > > > > > > > Kind of (not at all tested) like this.. > > > > > > > > for each (var item:XML in myxml..level2) { > > item.parent.append(item..level3); > > > > delete item; > > > > } > > > > > > > > you may actually need 2 loops one for the delete. If the above technique > > doesn't work try the copy() > > > > > > > > item.parent.append(item..level3.copy()); > > > > > > > > sorry no time to actually test anything here. > > > > > > > > jason > > > > > > > > > > -----Message d'origine----- > > De : [email protected] > [mailto:[EMAIL PROTECTED] la > > part de phipzkillah > > Envoyé : mercredi 10 janvier 2007 21:58 > > À : [email protected] > > Objet : [flexcoders] Re: XML manipulation > > > > > > That makes sense and I guess I should have rephrased my question. I > > have multiple levels of level1 and I need to preserve the hierarchy. > > I would assume you would need a for loop to do this. Any ideas? > > > > <level1> > > <level2> > > > > <level3/> > > <level3/> > > <level3/> > > > > </level2> > > </level1> > > > > <level1> > > <level2> > > > > <level3/> > > <level3/> > > > > </level2> > > </level1> > > > > Transformed to... > > > > <level1> > > > > <level3/> > > <level3/> > > <level3/> > > > > </level1> > > > > <level1> > > > > <level3/> > > <level3/> > > > > </level1> > > --- In [email protected], "Jason Hawryluk" <jh@> wrote: > > > > > > Yes; basically > > > > > > Grab level3 into an xmllist var > > > > > > delete level 2 append level 3 to level 1. > > > > > > var tempxml:XMLList = myxml..level3; > > > delete myxml.level2; > > > myxml.append(tempxml); > > > > > > the above code is off the top of my head. May and may not work :) > > > > > > jason > > > > > > > > > -----Message d'origine----- > > > De : [email protected] > [mailto:[EMAIL PROTECTED] la > > > part de phipzkillah > > > Envoyé : mercredi 10 janvier 2007 21:28 > > > À : [email protected] > > > Objet : [flexcoders] Re: XML manipulation > > > > > > > > > Ben, > > > > > > Thanks for your help. It works great! > > > > > > I have another question that I'm not sure if you will be able to > > > answer or not. If I have 3 levels of hierarchy in my XML and I want > > > to remove level 2 (but not its children - level 3) how would you go > > > about doing that? Eliminate level 2 while promoting level 3. > > > > > > <level1> > > > <level2> > > > > > > <level3/> > > > <level3/> > > > <level3/> > > > > > > </level2> > > > </level1> > > > > > > Transformed to... > > > > > > <level1> > > > > > > <level3/> > > > <level3/> > > > <level3/> > > > > > > </level1> > > > > > > --- In [email protected], "ben.clinkinbeard" > > > <ben.clinkinbeard@> wrote: > > > > > > > > Wow, I had no idea deleting a set of nodes would be this hard. > > > > Apparently this is how its done: > > > > > > > > for each(var node:XML in myXML..remove) > > > > { > > > > delete(myXML..remove[node.childIndex()]); > > > > } > > > > > > > > HTH, > > > > Ben > > > > > > > > > > > > --- In [email protected], "phipzkillah" <pkrasko@> wrote: > > > > > > > > > > How can I remove a selection of children from an xml tree. > > > > > > > > > > var myXML:XML = > > > > > <root> > > > > > <cluster> > > > > > <remove> > > > > > <garbage/> > > > > > <garbage/> > > > > > <garbage> > > > > > <garbage1/> > > > > > <garbage2/> > > > > > <garbage3/> > > > > > </garbage> > > > > > </remove> > > > > > <remove> > > > > > <garbage> > > > > > <garbage1/> > > > > > <garbage2/> > > > > > </garbage> > > > > > <garbage/> > > > > > </remove> > > > > > > > > > > <keep> > > > > > <info/> > > > > > <info/> > > > > > <info> > > > > > <goodStuff/> > > > > > <goodStuff/> > > > > > <goodStuff> > > > > > <good1/> > > > > > <good2/> > > > > > </goodStuff> > > > > > </info> > > > > > </keep> > > > > > </cluster> > > > > > </root> > > > > > > > > > > ...................... > > > > > > > > > > Now I want to keep all the good stuff. > > > > > > > > > > I want the final xml tree to look like this: > > > > > <root> > > > > > <cluster> > > > > > <keep> > > > > > <info/> > > > > > <info/> > > > > > <info> > > > > > <goodStuff/> > > > > > <goodStuff/> > > > > > <goodStuff> > > > > > <good1/> > > > > > <good2/> > > > > > </goodStuff> > > > > > </info> > > > > > </keep> > > > > > </cluster> > > > > > </root> > > > > > > > > > > I tried doing this with no luck: > > > > > > > > > > myXML = delete myXML..remove; > > > > > > > > > > Any ideas why that doesn't work? > > > > > > > > > > > > > > >

