public void process(InputStream is, OutputStream os) {
		this.os = os;
		try {
			Document document = builder.parse(is);
			Msg4Head head = new Msg4Head();
			head.read(document);
			String type = head.getMsgType();
		 
			if(Msg.MSG_TYPE_TEXT.equals(type)){//文本消息
				Msg4Text msg = new Msg4Text(head);
				msg.read(document);
				this.onTextMsg(msg);
			}else if(Msg.MSG_TYPE_IMAGE.equals(type)){//图片消息
				Msg4Image msg = new Msg4Image(head);
				msg.read(document);
				this.onImageMsg(msg);
			}else if(Msg.MSG_TYPE_EVENT.equals(type)){//事件推送
				Msg4Event msg = new Msg4Event(head);
				msg.read(document);
				this.onEventMsg(msg);
			}else if(Msg.MSG_TYPE_LINK.equals(type)){//链接消息
				Msg4Link msg = new Msg4Link(head);
				msg.read(document);
				this.onLinkMsg(msg);
			}else if(Msg.MSG_TYPE_LOCATION.equals(type)){//地理位置消息
				Msg4Location msg = new Msg4Location(head);
				msg.read(document);
				this.onLocationMsg(msg);
			}else if(Msg.MSG_TYPE_VOICE.equals(type)){
				Msg4Voice msg = new Msg4Voice(head);
				msg.read(document);
				this.onVoiceMsg(msg);
			}else if(Msg.MSG_TYPE_VIDEO.equals(type)){
				Msg4Video msg = new Msg4Video(head);
				msg.read(document);
				this.onVideoMsg(msg);
			}else{
				this.onErrorMsg(-1);//这里暂时这样处理的
			}
		} catch (SAXException e) { 
			e.printStackTrace();
		} catch (IOException e) { 
			e.printStackTrace();
		}
	}