anchor.diff:      Map<dynamic, dynamic>? obj = objin;
       if (node is XmlElement) {
         final nodeName = '"${node.name.qualified}"';
  +      // print('nodeName----------->$nodeName');
         if (obj![nodeName] is List && !obj.keys.contains(nodeName)) {
           obj[nodeName].add(<dynamic, dynamic>{});
           obj = obj[nodeName].last;
  
positive.code:       } else {
          if (node.children.isNotEmpty) {
            if (node.children[0] is XmlText) {
              final sanitisedNodeData =
                  _Xml2JsonUtils.escapeTextForJson(node.children[0].text);
              var nodeData = '"$sanitisedNodeData"';
              if (nodeData.isEmpty) {
                nodeData = '';
              }
  
              var attrs = node.attributes;
              // 如果开始节点里有属性
              if (attrs.isNotEmpty) {
                var objTemp = <dynamic, dynamic>{};
                attrs.forEach((attr) {
                  objTemp['"_${attr.name.local}"'] = '"${attr.value}"';
                });
                objTemp['"value"'] = nodeData;
                if (obj[nodeName] is Map) {
                  var jsonCopy = json.decode(json.encode(obj[nodeName]));
                  obj[nodeName] = <dynamic>[jsonCopy, objTemp];
                } else if (obj[nodeName] is List) {
                  obj[nodeName].add(objTemp);
                } else {
                  obj[nodeName] = objTemp;
                }
              } else {
                if (obj[nodeName] is String) {
                  obj[nodeName] = <dynamic>[obj[nodeName], nodeData];
                } else if (obj[nodeName] is List) {
                  obj[nodeName].add(nodeData);
                } else {
                  obj[nodeName] = nodeData;
                }
              }
            } else if (node.children[0] is XmlCDATA) {
              final sanitisedNodeData =
                  _Xml2JsonUtils.escapeTextForJson(node.children[0].text);
  
negative.code:               nodeData = '';
              }
              obj[nodeName] = nodeData;
            } else if (obj[nodeName] is Map) {
              var jsonCopy = json.decode(json.encode(obj[nodeName]));
              obj[nodeName] = <dynamic>[jsonCopy, <dynamic, dynamic>{}];
              obj = obj[nodeName].last;
            } else if (obj[nodeName] is List) {
              obj[nodeName].add(<dynamic, dynamic>{});
              obj = obj[nodeName].last;
            } else {
              obj[nodeName] = <dynamic, dynamic>{};
              obj = obj[nodeName];
            }
            if (node.attributes.isNotEmpty) {
              _parseAttrs(node, obj);
            }
          } else {
            /* No children, empty element */
  