📄 xmlparser.java
字号:
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
/**
* Use DOM parse XML message which transmit between JIDX Server and JIDX Client.<p>
* 2005.8.10
* @version 0.1.2
* @author Daxin Tian
*
*/
public class XMLParser{
/**
* Message to be parsed.
*/
public InputStream in=null;
/**
* Server send to client tell signin, register or modify password success information.
*/
public boolean ok_b=false;
/**
* Server send to client signin or register failed information.
*/
public boolean error_b=false;
/**
* Client send to server to transact register request.
*/
public boolean register_b=false;
/**
* Client send to server to transact signin request.
*/
public boolean signin_b=false;
/**
* Client send to server to transact search one or all users request.
*/
public boolean requsers_b=false;
/**
* Server send to client searching user result.
*/
public boolean ackusers_b=false;
/**
* Server send to client how many users have been found.
*/
public boolean ackusernum_b=false;
/**
* Client send to server to transact look for signature request.
*/
public boolean reqsignature_b=false;
/**
* Server send to client the signature.
*/
public boolean acksignature_b=false;
/**
* Client send to server to transact modify signature request.
*/
public boolean modsignature_b=false;
/**
* Client send to server to transact modify password request.
*/
public boolean modpassword_b=false;
/**
* Client send to server register or signin username.Combined with register_b and signin_b.
*/
public String name_s=null;
/**
* Client send to server register or signin password.Combined with register_b and signin_b.
*/
public String password_s=null;
/**
* Client send to server register or signin signature.Combined with register_b and signin_b.
*/
public String info_s=null;
/**
* Client send to server register or signin state.Combined with register_b and signin_b.
*/
public int state_i=0;
/**
* Client send to server register or signin IP address.Combined with register_b and signin_b.
*/
public String ips_s=null;
/**
* Server send to client the success information.
* <ul>
* <li>1:register ok;
* <li>2:signin ok;
* <li>3:modify password ok;
* </ul>
*
* Combined with ok_b.
*/
public int ok_i=0;
/**
* Some success information. Combined with ok_b.
*/
public String ok_info=null;
/**
* Server send to client the error information.
* <ul>
* <li>1:register error;
* <li>2:signin error;
* <li>3:search user error;
* <li>4:modify password error;
* </ul>
*
* Combined with error_b.
*/
public int err_i=0;
/**
* Some success information. Combined with error_b.
*/
public String err_info=null;
/**
* Client send to server to search one or all users. Combined with requsers_b.
*/
public String requsers_s=null;
/**
* Server send to Client the search user's name. Combined with ackusers_b.
*/
public String friendname_s=null;
/**
* Server send to Client the search user's signature. Combined with ackusers_b.
*/
public String friendinfo_s=null;
/**
* Server send to Client the search user's state. Combined with ackusers_b.
*/
public int friendstate_i=0;
/**
* Server send to Client the search user's IP address. Combined with ackusers_b.
*/
public String friendips_s=null;
/**
* Server send to Client the search user result information. Combined with ackusernum_b.
*/
public String ackinfo_s=null;
/**
* Server send to Client the how many users are founded. Combined with ackusernum_b.
*/
public int acknum_i=0;
/**
* Server send to Client the look for signature result. Combined with acksignature_b.
*/
public String acksig_s=null;
/**
* Client send to Server to the new signature . Combined with modsignature_b.
*/
public String modsig_s=null;
/**
* Client send to Server to look for whose signature . Combined with reqsignature_b.
*/
public String reqsig_name_s=null;
/**
* Client send to Server to modify whose signature . Combined with modsignature_b.
*/
public String modsig_name_s=null;
/**
* Client send to Server to modify whose password . Combined with modpassword_b.
*/
public String modpassword_name_s=null;
/**
* Client send to Server the old password . Combined with modpassword_b.
*/
public String oldpassword_s=null;
/**
* Client send to Server the new password . Combined with modpassword_b.
*/
public String newpassword_s=null;
public void parser()
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(in);
doc.normalize();
NodeList list_msg=doc.getElementsByTagName("msg");
//System.out.print(list_msg.getLength());
if(list_msg.getLength()==1)
{
//System.out.println("msg begin");
Element e_msg=(Element)list_msg.item(0);
if(e_msg.getElementsByTagName("ok").getLength()>0)
{
Element e_ok=(Element)e_msg.getElementsByTagName("ok").item(0);
ok_b=true;
ok_i=Integer.parseInt(e_ok.getElementsByTagName("num").item(0).getFirstChild().getNodeValue());
ok_info=e_ok.getElementsByTagName("info").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("error").getLength()>0)
{
Element e_err=(Element)e_msg.getElementsByTagName("error").item(0);
error_b=true;
err_i=Integer.parseInt(e_err.getElementsByTagName("num").item(0).getFirstChild().getNodeValue());
err_info=e_err.getElementsByTagName("info").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("register").getLength()>0)
{
//System.out.println("xml parser REGISTER ok");
register_b=true;
Element e_reg=(Element)e_msg.getElementsByTagName("register").item(0);
name_s=e_reg.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
password_s=e_reg.getElementsByTagName("password").item(0).getFirstChild().getNodeValue();
ips_s=e_reg.getElementsByTagName("ips").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("signin").getLength()>0)
{
//System.out.println("xml parser signin ok");
signin_b=true;
Element e_reg=(Element)e_msg.getElementsByTagName("signin").item(0);
name_s=e_reg.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
password_s=e_reg.getElementsByTagName("password").item(0).getFirstChild().getNodeValue();
ips_s=e_reg.getElementsByTagName("ips").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("ack_users").getLength()>0)
{
Element e_friendack=(Element)e_msg.getElementsByTagName("ack_users").item(0);
ackusers_b=true;
friendname_s=e_friendack.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
//System.out.println("XML ack_users name:"+friendname_s);
friendinfo_s=e_friendack.getElementsByTagName("info").item(0).getFirstChild().getNodeValue();
//System.out.println("XML ack_users info:"+friendinfo_s);
friendstate_i=Integer.parseInt(e_friendack.getElementsByTagName("state").item(0).getFirstChild().getNodeValue());
//System.out.println("XML ack_users state:"+friendstate_i);
friendips_s=e_friendack.getElementsByTagName("ips").item(0).getFirstChild().getNodeValue();
//System.out.println("XML ack_users ips:"+friendips_s);
}
if(e_msg.getElementsByTagName("req_users").getLength()>0)
{
Element e_friendack=(Element)e_msg.getElementsByTagName("req_users").item(0);
requsers_b=true;
try
{
requsers_s=e_friendack.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
}
catch(DOMException e)
{
System.out.println("XML:"+e);
}
}
if(e_msg.getElementsByTagName("ack_users_num").getLength()>0)
{
Element e_ack=(Element)e_msg.getElementsByTagName("ack_users_num").item(0);
ackusernum_b=true;
acknum_i=Integer.parseInt(e_ack.getElementsByTagName("num").item(0).getFirstChild().getNodeValue());
ackinfo_s=e_ack.getElementsByTagName("info").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("req_signature").getLength()>0)
{
Element e_ack=(Element)e_msg.getElementsByTagName("req_signature").item(0);
reqsignature_b=true;
reqsig_name_s=e_ack.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("ack_signature").getLength()>0)
{
Element e_ack=(Element)e_msg.getElementsByTagName("ack_signature").item(0);
acksignature_b=true;
acksig_s=e_ack.getElementsByTagName("sig").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("mod_signature").getLength()>0)
{
Element e_ack=(Element)e_msg.getElementsByTagName("mod_signature").item(0);
modsignature_b=true;
modsig_s=e_ack.getElementsByTagName("sig").item(0).getFirstChild().getNodeValue();
modsig_name_s=e_ack.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("mod_password").getLength()>0)
{
Element e_ack=(Element)e_msg.getElementsByTagName("mod_password").item(0);
modpassword_b=true;
modpassword_name_s=e_ack.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
oldpassword_s=e_ack.getElementsByTagName("oldpassword").item(0).getFirstChild().getNodeValue();
newpassword_s=e_ack.getElementsByTagName("newpassword").item(0).getFirstChild().getNodeValue();
}
}
}
catch(Exception e)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -