Title: RE: Problem using removeNode()

Missed one line in the modified code ….Here is it again

    for (var locNode:XMLNode=aNode.firstChild; locNode != null;){
            var delNode:XMLNode=aNode.firstChild;
            if (locNode.nodeType == 1 && locNode.nodeName=="location"){
                    var exclude:Boolean = false;
                    if (some condition here){
                            exclude = true;
                    }
            }
            if(exclude==true){
                    locNode=delNode.nextSibling;
                    delNode.removeNode();
                    //would like some kind of statement here to have delNode catch up with locNode
            }else{
                    locNode=locNode.nextSibling;
                    delNode=delNode.nextSibling;
            }
    }


-Daman


     -----Original Message-----
    From:   Dogra, Daman 
    Sent:   Thursday, June 30, 2005 10:39 AM
    To:     'flexcoders@yahoogroups.com'
    Subject:        Problem using removeNode()

    Hi All,

    I am facing a Coder's block here and would appreciate help . This is kind of long and I apologize for the same .

    Using actionscript I am looping some nodes (called "location") in a XML document and based on some condition would like to remove a few "location" nodes from the XML . Here's my initial code

    for (var locNode:XMLNode=aNode.firstChild; locNode != null; locNode=locNode.nextSibling){
            if (locNode.nodeType == 1 && locNode.nodeName=="location"){
                    var exclude:Boolean = false;
                    if (some condition here){
                            exclude = true;
                    }              
            }
            if(exclude==true){
                    loclNode.removeNode();
            }
    }

    The above code does not work, because after removing the first "location" node, the loop is never executed again as loop condition locNode != null is not fullfilled (because the locNode being evaluated just got deleted).

    I tried to solve this by having another pointer (called delNode) moving along with locNode and using delNode to remove nodes , while keep moving locNode on to next sibling . The problem I now face is that after delNode deletes a node, I am not able to have it catch up with locNode . Here's the code

    for (var locNode:XMLNode=aNode.firstChild; locNode != null;){
            if (locNode.nodeType == 1 && locNode.nodeName=="location"){
                    var exclude:Boolean = false;
                    if (some condition here){
                            exclude = true;
                    }
            }
            if(exclude==true){
                    locNode=delNode.nextSibling;
                    delNode.removeNode();
                    //would like some kind of statement here to have delNode catch up with locNode
            }else{
                    locNode=locNode.nextSibling;
                    delNode=delNode.nextSibling;
            }
    }


    Would appreciate any suggestions / modifications.


    Thanks
    -Daman



--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com




YAHOO! GROUPS LINKS




Reply via email to