Ignore:
Timestamp:
Feb 17, 2016, 12:52:48 PM (8 years ago)
Author:
sommeria
Message:

xmltree updated

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/@xmltree/delete.m

    r723 r925  
    44% tree      - XMLTree object
    55% uid       - array of UID's of subtrees to be deleted
    6 %_______________________________________________________________________
     6%__________________________________________________________________________
    77%
    88% Delete a subtree given its UID
    99% The tree parameter must be in input AND in output
    10 %_______________________________________________________________________
    11 % @(#)delete.m                 Guillaume Flandin               02/04/08
     10%__________________________________________________________________________
     11% Copyright (C) 2002-2011  http://www.artefact.tk/
    1212
    13 error(nargchk(2,2,nargin));
     13% Guillaume Flandin
     14% $Id: delete.m 4460 2011-09-05 14:52:16Z guillaume $
     15
     16%error(nargchk(2,2,nargin));
    1417
    1518uid = uid(:);
    1619for i=1:length(uid)
    17         if uid(i)==1
    18                 warning('[XMLTree] Cannot delete root element.');
    19         else
    20                 p = tree.tree{uid(i)}.parent;
    21                 tree = sub_delete(tree,uid(i));
    22                 tree.tree{p}.contents(find(tree.tree{p}.contents==uid(i))) = [];
    23         end
     20    if uid(i)==1
     21        warning('[XMLTree] Cannot delete root element.');
     22    else
     23        p = tree.tree{uid(i)}.parent;
     24        tree = sub_delete(tree,uid(i));
     25        tree.tree{p}.contents(find(tree.tree{p}.contents==uid(i))) = [];
     26    end
    2427end
    2528
    26 %=======================================================================
     29%==========================================================================
    2730function tree = sub_delete(tree,uid)
    28         if isfield(tree.tree{uid},'contents')
    29                 for i=1:length(tree.tree{uid}.contents)
    30                         tree = sub_delete(tree,tree.tree{uid}.contents(i));
    31                 end
    32         end
    33         tree.tree{uid} = struct('type','deleted');
     31    if isfield(tree.tree{uid},'contents')
     32        for i=1:length(tree.tree{uid}.contents)
     33            tree = sub_delete(tree,tree.tree{uid}.contents(i));
     34        end
     35    end
     36    tree.tree{uid} = struct('type','deleted');
Note: See TracChangeset for help on using the changeset viewer.