@Override
    protected Void doInBackground(XmlResourceParser... arg0) {

      final XmlParser parser =
          new XmlParser(arg0[0]) {
            @Override
            protected void onExecuteEndTagEvent(XmlPullParser parser, String name) {
              super.onExecuteEndTagEvent(parser, name);
              ConditionQuery.this.parser(this, parser, name, false);
            }

            protected void onExecuteStartTagEvent(XmlPullParser parser, String tag) {
              super.onExecuteEndTagEvent(parser, tag);
              ConditionQuery.this.parser(this, parser, tag, true);
            }
          };
      parser.parser();

      return null;
    }
  private void parser(XmlParser xmlParser, XmlPullParser xrp, String name, boolean start) {
    if (name == null) {
      return;
    }

    if (name.equals("PropertySearch")) {
      if (start) {
        bean = new GeologyBean();
      }
    }
    if (name.equals("GeoObject")) {
      if (start) {
        int count = xrp.getAttributeCount();
        if (count < 2) {
          mylog.e(TAG, "attribute count error below 2 " + count);
        }
        try {
          String id = xrp.getAttributeValue(0);
          if (id.equals("11")) {
            System.out.println("11");
          }
          String attName = xrp.getAttributeValue(1);
          if (bean != null) {
            geoobj = bean.createOneGeoObj(id, attName);
          } else {
            mylog.e(TAG, "W : bean is null ");
          }
        } catch (Exception e) {
          mylog.e(TAG, "E : " + e);
          e.printStackTrace();
        }
      }
    }
    if (name.equals("GeoCondition")) {
      if (start) {
        int count = xrp.getAttributeCount();
        if (count < 3) {
          mylog.e(TAG, "attribute count error below 3 " + count);
        }

        try {
          String id = xrp.getAttributeValue(0);
          String attName = xrp.getAttributeValue(1);
          String state = xrp.getAttributeValue(2);
          if (geoobj != null) {
            condition = geoobj.createOneConditionObj(id, attName, state);
          } else {
            mylog.e(TAG, "W : geoobj is null ");
          }
        } catch (Exception e) {
          mylog.e(TAG, "E : " + e);
          e.printStackTrace();
        }
      }
    }
    if (isValue(name)) {
      if (start) {
        try {
          int count = xrp.getAttributeCount();
          if (count < 2) {
            mylog.e(
                TAG, "attribute count error below 2 " + count + xmlParser.debugAttributeValue(xrp));
          }
          String id = xrp.getAttributeValue(0);
          String attName = xrp.getAttributeValue(1);
          if (condition != null) {
            mValues = condition.createOneVaueObj(id, attName);
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      } else {
        mValues = null;
      }
    }

    if (isFvalue(name)) {
      if (start) {
        int count = xrp.getAttributeCount();
        if (count < 2) {
          mylog.e(TAG, "attribute count error below 2 " + count);
        }
        String id = xrp.getAttributeValue(0);
        String attName = xrp.getAttributeValue(1);
        if (mValues != null) {
          mFvalue = mValues.createFValue(id, attName);
        } else if (condition != null) {
          slog.p(TAG, "mValues is null , use condition " + condition.name + " " + attName);
          mFvalue = condition.createFVaueObj(id, attName);
        }
      }
    }

    if (isSvalue(name)) {
      if (start) {
        int count = xrp.getAttributeCount();
        if (count < 2) {
          mylog.e(TAG, "attribute count error below 2 " + count);
        }
        String id = xrp.getAttributeValue(0);
        String attName = xrp.getAttributeValue(1);

        if (mFvalue != null) {
          svalue = mFvalue.createSValue(id, attName);
        }
      } else {
        svalue = null;
      }
    }
    if (isTvalue(name)) {
      if (start) {
        int count = xrp.getAttributeCount();
        if (count < 2) {
          mylog.e(TAG, "attribute count error below 2 " + count);
        }
        String id = xrp.getAttributeValue(0);
        String attName = xrp.getAttributeValue(1);

        if (svalue != null) {
          svalue.createSValue(id, attName);
        } else {
          mylog.e(TAG, "error svalue is null " + name);
        }
      }
    }
  }