@Override
  public HostData parseServerData(String serverXML) throws PSIParserException, PSIError {
    // Build parser
    SAXParser parser = null;

    try {
      parser = SAXParserFactory.newInstance().newSAXParser();
    }
    catch (Exception e) {
        //Log.d("PSIAndroid", "XML_PARSER_CREATE");
        //errorCode = PSIErrorCode.XML_PARSER_CREATE;
        return null;
    }

    DefaultHandler handler = new PSIXmlHandler();

    try {
      // String to InputStream conversion
      // @see http://www.mkyong.com/java/how-to-convert-string-to-inputstream-in-java/

      InputStream is = new ByteArrayInputStream(serverXML.getBytes());

      parser.parse(is, handler);
    }
    catch (SAXException e) {
      throw new PSIParserException("Parsing", e);
    }
    catch (IOException e) {
      throw new PSIParserException("Parsing", e);
    }

    return ((PSIXmlHandler) handler).getData();
  }