/** * Process Message from server * * @param doc */ private void _message(Document doc) { Element root = doc.getRootElement(); Element message = root.getChild("message"); String sender = message.getChild("sender").getText(); String mesg = message.getChild("mesg").getText(); sendMessage(NORMAL, sender + ": " + mesg); }
/** * Process kick from server * * @param doc */ private void _kick(Document doc) { Element root = doc.getRootElement(); Element kick = root.getChild("kick"); String user = kick.getChild("user").getText(); String answer = kick.getChild("answer").getText(); if (answer.equals("OK") == true) sendMessage(SERVER, user + " was kicked from " + _group); }
/** * Processes the messages from the server * * @param message */ private synchronized void processServerMessage(String message) { SAXBuilder builder = new SAXBuilder(); String what = new String(); Document doc = null; try { doc = builder.build(new StringReader(message)); Element root = doc.getRootElement(); List childs = root.getChildren(); Iterator i = childs.iterator(); what = ((Element) i.next()).getName(); } catch (Exception e) { } if (what.equalsIgnoreCase("LOGIN") == true) _login(doc); else if (what.equalsIgnoreCase("LOGOUT") == true) _logout(doc); else if (what.equalsIgnoreCase("MESSAGE") == true) _message(doc); else if (what.equalsIgnoreCase("WALL") == true) _wall(doc); else if (what.equalsIgnoreCase("CREATEGROUP") == true) _creategroup(doc); else if (what.equalsIgnoreCase("JOINGROUP") == true) _joingroup(doc); else if (what.equalsIgnoreCase("PARTGROUP") == true) _partgroup(doc); else if (what.equalsIgnoreCase("GROUPMESSAGE") == true) _groupmessage(doc); else if (what.equalsIgnoreCase("KICK") == true) _kick(doc); else if (what.equalsIgnoreCase("LISTUSER") == true) _listuser(doc); else if (what.equalsIgnoreCase("LISTGROUP") == true) _listgroup(doc); }
public boolean read(String strRoute, String strElement, int flag) { //SAXBuilder builder=new SAXBuilder(); strText = null; try { String[] route = new String[4]; String str = null; Document doc = builder.build(xmlFileName); Element root = doc.getRootElement(); Element element = root; //创建一个拆分字符串内容的对象,每次返回一项 StringTokenizer st = new StringTokenizer(strRoute, ":"); str = st.nextToken(); while (st.hasMoreTokens()) { str = st.nextToken(); element = element.getChild(str); } //mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP,str); element = (Element) element.getParent(); /* * while(flag!=1) { if(element.removeChild(str)) * mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP,"deleted "+str); * else mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP,"not * deleted"); * * flag--; } */ // mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP,element.getName()); strText = element.getChild(str).getChild(strElement).getText(); } catch (JDOMException jdome) { mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, xmlFileName + " is not well-formed"); } catch (IOException ioe) { mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, ioe); } catch (NullPointerException nullpe) { mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, "not founded" + "\n" + nullpe); } catch (Exception e) { mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, "read no succeed" + "\n" + e); } if (strText == null) { mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, "not founded"); return false; } else { // mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP,"strText="+strText); return true; } }
/** * Process Partgroup from server * * @param doc */ private void _partgroup(Document doc) { Element root = doc.getRootElement(); Element part = root.getChild("partgroup"); String group = part.getChild("group").getText(); String answer = part.getChild("answer").getText(); if (group.equals(_group) == true) { sendMessage(SERVER, group + ": " + answer); } }
/** * Process Groupmessage from server * * @param doc */ private void _groupmessage(Document doc) { Element root = doc.getRootElement(); Element message = root.getChild("groupmessage"); String group = message.getChild("group").getText(); String sender = message.getChild("sender").getText(); String mesg = message.getChild("mesg").getText(); if (group.equals(_group) == true) { sendMessage(NORMAL, group + "(" + sender + "): " + mesg); } }
/** * Process Joingroup from server * * @param doc */ private void _joingroup(Document doc) { Element root = doc.getRootElement(); Element join = root.getChild("joingroup"); String group = join.getChild("group").getText(); String answer = join.getChild("answer").getText(); sendMessage(SERVER, "JoinGroup: " + answer); if (answer.equals("OK") == true) { sendMessage(SERVER, "Group " + group + " joined."); _group = group; } }
/** * Process Creategroup from server * * @param doc */ private void _creategroup(Document doc) { Element root = doc.getRootElement(); Element create = root.getChild("creategroup"); String group = create.getChild("group").getText(); String answer = create.getChild("answer").getText(); sendMessage(SERVER, "Group creation is: " + answer); if (answer.equals("OK") == true) { sendMessage(SERVER, "Group " + group + " joined."); _group = group; } }
/** * Método public static void leerArchivoXML(ListaUsuarios listaDeUsuarios): Este método permite * leer un archivo XML que contiene los datos de los usuarios a través de jdom */ public static void leerArchivoXML(ListaUsuario listaDeUsuarios) { try { SAXBuilder builder = new SAXBuilder(); /* Se crea un documento nuevo con el nombre del archivo */ Document doc = builder.build(nombreArchivo); /* Se obtiene la raíz del archivo (la etiqueta inicial) */ Element raiz = doc.getRootElement(); /* Se puede obtener el atributo de la raíz (de la etiqueta) */ System.out.println(raiz.getAttributeValue("tipo")); /* Se obtienen todos los hijos cuya etiqueta esa "usuario" */ /* y se asignan esos hijos a un List */ List listaUsuarios = raiz.getChildren("usuario"); System.out.println("Formada por:" + listaUsuarios.size() + " usuarios"); System.out.println("------------------"); /* Se genera un iterador para recorrer el List que se generó */ Iterator i = listaUsuarios.iterator(); /* Se recorre el List */ while (i.hasNext()) { /* Se obtiene cada uno y se asigna a un objeto de tipo Element */ Element e = (Element) i.next(); /* Se obtiene el nombre, apellido y cargo de cada una de las etiquetas */ /* hijas de usuario, es decir, nombre, apellido y cargo */ Element nick = e.getChild("nick"); Element clave = e.getChild("clave"); Element nombre = e.getChild("nombre"); Element apellido = e.getChild("apellido"); Element fechanac = e.getChild("fechanac"); Element avatar = e.getChild("avatar"); /* Se crea un nodo nuevo con la información y se agrega a la lista de usuarios */ Usuario elUsuario = new Usuario( nick.getText(), clave.getText(), nombre.getText(), apellido.getText(), fechanac.getText(), avatar.getText()); listaDeUsuarios.AgregarElemento(elUsuario); } } catch (Exception e) { e.printStackTrace(); } }
/** * Process listuser from server * * @param doc */ private void _listuser(Document doc) { StringBuffer userlist = new StringBuffer(); Element root = doc.getRootElement(); Element list = root.getChild("listuser"); List users = list.getChildren("user"); Iterator i = users.iterator(); while (i.hasNext()) { userlist.append(((Element) i.next()).getText()); userlist.append("\n"); } sendMessage(SERVER, "Users: \n" + userlist); }
public void readFromStream(InputStream stream) { Document doc = null; SAXBuilder sb = new SAXBuilder(); try { doc = sb.build(stream); readDOMElement(doc.getRootElement()); } catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
/** * Process listgroup from server * * @param doc */ private void _listgroup(Document doc) { StringBuffer grouplist = new StringBuffer(); Element root = doc.getRootElement(); Element list = root.getChild("listgroup"); List groups = list.getChildren("group"); Iterator i = groups.iterator(); while (i.hasNext()) { Element temp = (Element) i.next(); grouplist.append(temp.getChild("name").getText()); grouplist.append("\t"); grouplist.append(temp.getChild("description").getText()); grouplist.append("\n"); } sendMessage(SERVER, "Groups: \n" + grouplist); }
// Empieza La Carga de la Partida public static void leerArchivoXML(ListaPartida listaDePartidas) { try { SAXBuilder builder = new SAXBuilder(); /* Se crea un documento nuevo con el nombre del archivo */ Document doc = builder.build(nombreArchivoPartida); /* Se obtiene la raíz del archivo (la etiqueta inicial) */ Element raiz = doc.getRootElement(); /* Se puede obtener el atributo de la raíz (de la etiqueta) */ System.out.println(raiz.getAttributeValue("tipo")); /* Se obtienen todos los hijos cuya etiqueta esa "usuario" */ /* y se asignan esos hijos a un List */ List listaPartida = raiz.getChildren("partida"); System.out.println("Formada por:" + listaPartida.size() + " Partidas"); System.out.println("------------------"); /* Se genera un iterador para recorrer el List que se generó */ Iterator i = listaPartida.iterator(); /* Se recorre el List */ while (i.hasNext()) { /* Se obtiene cada uno y se asigna a un objeto de tipo Element */ Element e = (Element) i.next(); /* Se obtiene el nombre, apellido y cargo de cada una de las etiquetas */ /* hijas de usuario, es decir, nombre, apellido y cargo */ Element nick = e.getChild("Usuario"); Element ID = e.getChild("ID"); Element fechaactual = e.getChild("fechaacual"); Element fechainicio = e.getChild("fechainicio"); /* Se crea un nodo nuevo con la información y se agrega a la lista de usuarios */ Partida laPartida = new Partida( nick.getText(), ID.getContentSize(), fechaactual.getText(), fechainicio.getText()); listaDePartidas.AgregarElemento(laPartida); } } catch (Exception e) { e.printStackTrace(); } }
/** * * @param 普通版list 参数列表 */ public void writeptParaList(ArrayList list) { try { String sCaseName=""; String sItem=""; String sCycName=""; HashMap map=null; Document doc = builder.build(xmlFileName); Element root = doc.getRootElement(); Element element = root; Element cycNode=null; map=(HashMap)list.get(0); //参数文件map sItem="Description"; sCaseName=(String)map.get(sItem); mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, "Description=" + sCaseName ); sItem="CysName"; sCycName=(String)map.get(sItem); map=(HashMap)list.get(1); //public 参数map cycNode=writeptPublicNode(element,map,sCycName); if( writeCycNode(cycNode,list)==false) //循环 参数 System.err.println(" write cyc node fail"); XMLOutputter outputter = new XMLOutputter("", false, "GB2312"); PrintWriter out = new PrintWriter(new BufferedWriter( new FileWriter(xmlFileName))); Document myDocument = root.getDocument(); outputter.output(myDocument, out); out.close(); } catch (JDOMException jdome) { jdome.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }
//改写XML文件的某一元素的值 //strRoute为XML文件从根元素开始到该元素的父元素的路径 //strElement为需要读取的元素 //flag为当XML含有多个同名元素时,需要改写元素所处的序号 public void write(String strRoute, String strElement, String strSet, int flag) { //SAXBuilder builder=new SAXBuilder(); try { String str = null; Document doc = builder.build(xmlFileName); Element root = doc.getRootElement(); Element element = root; StringTokenizer st = new StringTokenizer(strRoute, ":"); str = st.nextToken(); while (st.hasMoreTokens()) { str = st.nextToken(); //mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP,str); element = element.getChild(str); } // mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP,"test :"+str); element = (Element) element.getParent(); //若需要改写的不是XML文件的第一个同名元素,则获取该元素 //方法为:将之前的元素依次移到后面,需要改写的元素前移至第一个 /* * if(flag>1) { int j=flag; while(j!=1) { * * Element tmp=element.getChild(str); * element.addContent(tmp.detach()); j--; } } */ element = element.getChild(str).getChild(strElement); // mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP,"gettxt // "+element.getText()); element.setText(strSet); //若需要改写的不是XML文件的第一个同名元素 //上面改变了次序,需要在成功改写后恢复原有次序 /* * if(flag!=1) { * * java.util.List children=element.getChildren(); Iterator * iterator=children.iterator(); int count=0; * while(iterator.hasNext()) { Element * child=(Element)iterator.next(); count++; } * * System.out.println("count"+count); * * k=(count+1-flag)%count; * * while(k!=0) { Element tmp=element.getChild(str); * element.addContent(tmp.detach()); k--; } } * */ XMLOutputter outputter = new XMLOutputter("", false, "GB2312"); PrintWriter out = new PrintWriter(new BufferedWriter( new FileWriter(xmlFileName))); Document myDocument = root.getDocument(); outputter.output(myDocument, out); out.close(); } catch (JDOMException jdome) { jdome.printStackTrace(); // mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, xmlFileName // + " is not well-formed\n"); } catch (IOException ioe) { ioe.printStackTrace(); // mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, ioe); } catch (Exception e) { e.printStackTrace(); // mypage.FcfeMain.wR(mypage.FcfeMain.SIM_APP_ERP, // "write not succeed\n"); } }
/** * Process Logout from server * * @param doc */ private void _logout(Document doc) { Element root = doc.getRootElement(); Element logout = root.getChild("logout"); String answer = logout.getChild("answer").getText(); sendMessage(SERVER, "Logout is: " + answer); }
/** * Process Wall from server * * @param doc */ private void _wall(Document doc) { Element root = doc.getRootElement(); Element wall = root.getChild("wall"); String mesg = wall.getChild("mesg").getText(); sendMessage(SERVER, mesg); }