Rev | Line | |
---|
[925] | 1 | function tree = delete(tree,uid)
|
---|
| 2 | % XMLTREE/DELETE Delete (delete a subtree given its UID)
|
---|
| 3 | %
|
---|
| 4 | % tree - XMLTree object
|
---|
| 5 | % uid - array of UID's of subtrees to be deleted
|
---|
| 6 | %__________________________________________________________________________
|
---|
| 7 | %
|
---|
| 8 | % Delete a subtree given its UID
|
---|
| 9 | % The tree parameter must be in input AND in output
|
---|
| 10 | %__________________________________________________________________________
|
---|
| 11 | % Copyright (C) 2002-2011 http://www.artefact.tk/
|
---|
| 12 |
|
---|
| 13 | % Guillaume Flandin
|
---|
| 14 | % $Id: delete.m 4460 2011-09-05 14:52:16Z guillaume $
|
---|
| 15 |
|
---|
| 16 | %error(nargchk(2,2,nargin));
|
---|
| 17 |
|
---|
| 18 | uid = uid(:);
|
---|
| 19 | for i=1:length(uid)
|
---|
| 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
|
---|
| 27 | end
|
---|
| 28 |
|
---|
| 29 | %==========================================================================
|
---|
| 30 | function tree = sub_delete(tree,uid)
|
---|
| 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
TracBrowser
for help on using the repository browser.