| | function subtree = branch(tree,uid) |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| |
|
| |
|
| | |
| |
|
| | if uid > length(tree) || ... |
| | numel(uid)~=1 || ... |
| | ~strcmp(tree.tree{uid}.type,'element') |
| | error('[XMLTree] Invalid UID.'); |
| | end |
| |
|
| | subtree = xmltree; |
| | subtree = set(subtree,root(subtree),'name',tree.tree{uid}.name); |
| | |
| | subtree = set(subtree,root(subtree),'attributes',tree.tree{uid}.attributes); |
| |
|
| | child = children(tree,uid); |
| |
|
| | for i=1:length(child) |
| | l = length(subtree); |
| | subtree = sub_branch(tree,subtree,child(i),root(subtree)); |
| | subtree.tree{root(subtree)}.contents = [subtree.tree{root(subtree)}.contents l+1]; |
| | end |
| |
|
| | |
| | function tree = sub_branch(t,tree,uid,p) |
| |
|
| | l = length(tree); |
| | tree.tree{l+1} = t.tree{uid}; |
| | tree.tree{l+1}.uid = l + 1; |
| | tree.tree{l+1}.parent = p; |
| | tree.tree{l+1}.contents = []; |
| | if isfield(t.tree{uid},'contents') |
| | contents = get(t,uid,'contents'); |
| | m = length(tree); |
| | for i=1:length(contents) |
| | tree.tree{l+1}.contents = [tree.tree{l+1}.contents m+1]; |
| | tree = sub_branch(t,tree,contents(i),l+1); |
| | m = length(tree); |
| | end |
| | end |
| |
|