code: protected XmlElement transformElement(org.dom4j.Element node) {
      XmlElement xe = new XmlElement(node.getName());
  
      // 设置元素的属性 
      @SuppressWarnings("unchecked")
      Iterator<org.dom4j.Attribute> iterator = node.attributeIterator();
      while (iterator.hasNext()) {
        org.dom4j.Attribute ab = iterator.next();
        xe.addAttribute(new Attribute(ab.getName(), ab.getValue()));
      }
      // 深度优先遍历子节点
      @SuppressWarnings("unchecked")
      Iterator<org.dom4j.Node> niter = node.nodeIterator();
      while (niter.hasNext()) {
        org.dom4j.Node n = niter.next();
        // 文本节点
        if (n.getNodeType() == org.dom4j.Node.TEXT_NODE) {
          Text text = (Text) n;
          TextElement te = new TextElement(text.getText().trim());
          xe.addElement(te);
        }
        // 元素节点
        if (n.getNodeType() == org.dom4j.Node.ELEMENT_NODE) {
          xe.addElement(transformElement((org.dom4j.Element) n));
        }
        // 注释节点
        if (n.getNodeType() == org.dom4j.Node.COMMENT_NODE) {
          TextElement te = new TextElement(n.asXML().trim());
          xe.addElement(te);
        }
        // CDATA 节点
        if (n.getNodeType() == org.dom4j.Node.CDATA_SECTION_NODE) {
          TextElement te = new TextElement(n.asXML().trim());
          xe.addElement(te);
        }
      }
      return xe;
    }
docs: 转换dom4j的element元素，生成mbg的XmlElement元素
  
  @param node The dom4j node to be transform
  @return The transform result