protected Element createFollowPath(List<String> path) {
    if (path != null && path.size() > 0) {
      Element cur = root.getRootElement();
      Element next = null;
      if (cur == null) {
        cur = root.addElement(path.get(0));
      }      
      for (int i=1; i<path.size(); i++) {
        next = cur.element(path.get(i));
        cur = next == null? cur.addElement(path.get(i)):next;
      }
      return cur;
    } else {
      return null;
    }
    
  }