code: void inspectQuery(String query) {
          Map<String, String> qryParams = new HashMap<String, String>();
          for (String param : query.split("&")) {
              String[] nvp = param.split("=");
              if(nvp.length > 1){
                qryParams.put(nvp[0].toLowerCase(), nvp[1]);
              }else{
                qryParams.put(nvp[0].toLowerCase(), "");
              }    
          }
          String reqType = qryParams.get("request");
          XPath xpath = XPathFactory.newInstance().newXPath();
          for (Map.Entry<String, String> paramEntry : qryParams.entrySet()) {
              String[] paramValues = paramEntry.getValue().split(",");
              for (int i = 0; i < paramValues.length; i++) {
                  String expr = String
                          .format("//request[@name='%s']/param[@name='%s']/value[text() = '%s']",
                                  reqType, paramEntry.getKey(), paramValues[i]);
                  NodeList result = null;
                  try {
                      result = (NodeList) xpath.evaluate(expr, this.coverageDoc,
                              XPathConstants.NODESET);
                  } catch (XPathExpressionException xpe) {
                      LOGR.log(Level.WARNING, "Failed to evaluate expression "
                              + expr, xpe);
                  }
                  if ((null != result) && (result.getLength() > 0)) {
                      for (int j = 0; j < result.getLength(); j++) {
                          Node value = result.item(j);
                          Element param = (Element) value.getParentNode();
                          param.removeChild(value);
                          // remove empty param element
                          if (param.getElementsByTagName("value").getLength() == 0) {
                              Node request = param.getParentNode();
                              request.removeChild(param);
                          }
                      }
                  }
              }
          }
      }
docs: Inspects the query part of a GET request URI and updates the ICS document
  by removing parameter values that occur in the request. The initial
  coverage report is modified over the course of the test run as requests
  are received; the residual document includes only those parameter values
  that were <em>not requested</em>.
  
  @param query
  The (decoded) query component of a GET request.