code: public static void addElementWithBestPosition(XmlElement rootElement, XmlElement element) {
          // sql 元素都放在sql后面
          if (element.getName().equals("sql")) {
              int index = 0;
              for (Element ele : rootElement.getElements()) {
                  if (ele instanceof XmlElement && ((XmlElement) ele).getName().equals("sql")) {
                      index++;
                  }
              }
              rootElement.addElement(index, element);
          } else {
  
              // 根据id 排序
              String id = getIdFromElement(element);
              if (id == null) {
                  rootElement.addElement(element);
              } else {
                  List<Element> elements = rootElement.getElements();
                  int index = -1;
                  for (int i = 0; i < elements.size(); i++) {
                      Element ele = elements.get(i);
                      if (ele instanceof XmlElement) {
                          String eleId = getIdFromElement((XmlElement) ele);
                          if (eleId != null) {
                              if (eleId.startsWith(id)) {
                                  if (index == -1) {
                                      index = i;
                                  }
                              } else if (id.startsWith(eleId)) {
                                  index = i + 1;
                              }
                          }
                      }
                  }
  
                  if (index == -1 || index >= elements.size()) {
                      rootElement.addElement(element);
                  } else {
                      elements.add(index, element);
                  }
              }
          }
      }
docs: 在最佳位置添加节点
  @param rootElement
  @param element