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/branch.m

    r821 r925  
    66% uid     - UID of the root element of the subtree
    77% subtree - XMLTree object (a subtree from tree)
    8 %_______________________________________________________________________
     8%__________________________________________________________________________
    99%
    1010% Return a subtree from a tree.
    11 %_______________________________________________________________________
    12 % @(#)branch.m                  Guillaume Flandin              02/04/17
     11%__________________________________________________________________________
     12% Copyright (C) 2002-2011  http://www.artefact.tk/
    1313
    14 error(nargchk(2,2,nargin));
     14% Guillaume Flandin
     15% $Id: branch.m 4460 2011-09-05 14:52:16Z guillaume $
    1516
    16 if uid > length(tree) | ...
    17    prod(size(uid))~=1 | ...
     17
     18%error(nargchk(2,2,nargin));
     19
     20if uid > length(tree) || ...
     21   numel(uid)~=1 || ...
    1822   ~strcmp(tree.tree{uid}.type,'element')
    19         error('[XMLTree] Invalid UID.');
     23    error('[XMLTree] Invalid UID.');
    2024end
    2125
     
    2832
    2933for i=1:length(child)
    30         l = length(subtree);
    31         subtree = sub_branch(tree,subtree,child(i),root(subtree));
    32         subtree.tree{root(subtree)}.contents = [subtree.tree{root(subtree)}.contents l+1];
     34    l = length(subtree);
     35    subtree = sub_branch(tree,subtree,child(i),root(subtree));
     36    subtree.tree{root(subtree)}.contents = [subtree.tree{root(subtree)}.contents l+1];
    3337end
    3438
    35 %=======================================================================
     39%==========================================================================
    3640function tree = sub_branch(t,tree,uid,p)
    3741
    38         l = length(tree);
    39         tree.tree{l+1} = t.tree{uid};
    40         tree.tree{l+1}.uid = l + 1;
    41         tree.tree{l+1}.parent = p;
    42         tree.tree{l+1}.contents = [];
    43         if isfield(t.tree{uid},'contents')
    44                 contents = get(t,uid,'contents');
    45                 m = length(tree);
    46                 for i=1:length(contents)
    47                         tree.tree{l+1}.contents = [tree.tree{l+1}.contents m+1];
    48                         tree = sub_branch(t,tree,contents(i),l+1);
    49                         m = length(tree);
    50                 end
    51         end
     42    l = length(tree);
     43    tree.tree{l+1} = t.tree{uid};
     44    tree.tree{l+1}.uid = l + 1;
     45    tree.tree{l+1}.parent = p;
     46    tree.tree{l+1}.contents = [];
     47    if isfield(t.tree{uid},'contents')
     48        contents = get(t,uid,'contents');
     49        m = length(tree);
     50        for i=1:length(contents)
     51            tree.tree{l+1}.contents = [tree.tree{l+1}.contents m+1];
     52            tree = sub_branch(t,tree,contents(i),l+1);
     53            m = length(tree);
     54        end
     55    end
Note: See TracChangeset for help on using the changeset viewer.