安卓:XmlpullParser异常 [英] Android : XmlpullParser exception
问题描述
我被困了一个问题,在我的程序我正在xmlpullparser例外,我瞪大眼睛,但因为我是新到Android我无法理解如何解决这个问题。我纠正我的程序仍然有很多我不能,有人帮我解决这个
我使用WSDL,KSOAP1.2。
在此先感谢....!
下面是我的code
公共无效寄存器(){
Log.v(TAG,试图登录);
的EditText etxt_user =(EditText上)findViewById(R.id.regetfirstname);
的EditText etxt_pass =(EditText上)findViewById(R.id.regetlastname);
的EditText etxt_dob =(EditText上)findViewById(R.id.regetdob);
的EditText etxt_email =(EditText上)findViewById(R.id.regetemail);
的EditText etxt_password =(EditText上)findViewById(R.id.regetpwd);
的EditText etxt_confirmpassword =(EditText上)findViewById(R.id.regetrepwd);
的EditText etxt_mobno =(EditText上)findViewById(R.id.regetmobno);
最终按钮regmalebtn =(按钮)findViewById(R.id.regmalebtn);
按钮regfemalebtn =(按钮)findViewById(R.id.regfemalebtn);
//字符串DEVICEID = NULL;
。字符串FNAME = etxt_user.getText()的toString();
。字符串LNAME = etxt_pass.getText()的toString();
。字符串DOB = etxt_dob.getText()的toString();
弦接触= etxt_mobno.getText()的toString()。
字符串密码;
串confirmpassword;
。字符串email = etxt_email.getText()的toString();
。密码= etxt_password.getText()的toString();
confirmpassword = etxt_confirmpassword.getText()的toString()。 最后SoapObject要求=新SoapObject空间(namespace,METHOD_NAME);
SoapSerializationEnvelope的SoapEnvelope =新SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = TRUE;
soapEnvelope.setOutputSoapObject(请求);
HttpTransportSE AHT =新HttpTransportSE(URL);
尝试{ //布尔pstatus = FALSE;
如果(confirmpassword = NULL&放大器;!&放大器;密码!= NULL)
{
如果(password.equals(confirmpassword))
{
request.addProperty(密码,密码); }
}
regmalebtn.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
//字符串性别= regmalebtn.getText()的toString()。 字符串性别;
性别=((按钮)findViewById(R.id.regmalebtn))的getText()的toString()。
gender.equals(男性);
request.addProperty(性别,性别等);
}
});
regfemalebtn.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
//字符串性别= regmalebtn.getText()的toString()。
// request.addProperty(性别,性别等);
字符串性别;
性别=((按钮)findViewById(R.id.regfemalebtn))的getText()的toString()。
gender.equals(女);
request.addProperty(性别,性别等);
}
}); request.addProperty(邮件,邮件);
request.addProperty(联系,联系方式);
request.addProperty(其中fname,FNAME);
request.addProperty(L-NAME,LNAME); request.addProperty(出生日期,DOB);
//request.addProperty(\"password,密码);
request.addProperty(纬度,76);
request.addProperty(经度,82);
request.addProperty(DEVICE_ID,12345); aht.setXmlVersionTag(&下; XML版本= \\1.0 \\编码= \\UTF-8 \\>);
aht.call(SOAP_ACTION,的SoapEnvelope);
// SoapObject结果=(SoapObject)soapEnvelope.getResponse();
SoapObject resultsRequestSOAP =(SoapObject)soapEnvelope.bodyIn;
Log.v(TAG,将String.valueOf(resultsRequestSOAP));
//字符串resultData;
// resultData = request.getProperty(0)的ToString();
}赶上(例外五){ e.printStackTrace();
}
}}
以上是logcat的消息
06-20 18:12:23.099:
WARN / System.err的(688):
org.xmlpull.v1.XmlPullParserException:
预计:START_TAG
{http://schemas.xmlsoap.org/soap/envelope/}Envelope
(位置:START_TAG @ 1:6
java.io.InputStreamReader@43e88978)
06-20 18:12:23.099:
WARN / System.err的(688):在
org.kxml2.io.KXmlParser.exception(KXmlParser.java:273)
06-20 18:12:23.108:
WARN / System.err的(688):在
org.kxml2.io.KXmlParser.require(KXmlParser.java:1431)
06-20 18:12:23.108:
WARN / System.err的(688):在
org.ksoap2.SoapEnvelope.parse(未知
源)06-20 18:12:23.108:
WARN / System.err的(688):在
org.ksoap2.transport.Transport.parseResponse(未知
源)06-20 18:12:23.108:
WARN / System.err的(688):在
org.ksoap2.transport.HttpTransportSE.call(未知
源)06-20 18:12:23.118:
WARN / System.err的(688):在
com.soap.Register.register(Register.java:189)
06-20 18:12:23.118:
WARN / System.err的(688):在
com.soap.Register $ 1 $ 1.run(Register.java:42)
块引用>解决方案公共静态无效getAllXML(字符串URL)抛出
XmlPullParserException,IOException异常,{的URISyntaxException
XmlPullParserFactory工厂= XmlPullParserFactory.newInstance();
factory.setNamespaceAware(真);
XmlPullParser解析器= factory.newPullParser();
parser.setInput(新的InputStreamReader(getUrlData(URL)));
XmlUtils.beginDocument(分析器,结果);
INT EVENTTYPE = parser.getEventType();
做{
XmlUtils.nextElement(分析器);
parser.next();
EVENTTYPE = parser.getEventType();
如果(EVENTTYPE == XmlPullParser.TEXT){
Log.d(测试,parser.getText());
}
}而(EVENTTYPE = XmlPullParser.END_DOCUMENT!);
}
公众的InputStream getUrlData(字符串URL)
抛出的URISyntaxException,ClientProtocolException,IOException异常{
DefaultHttpClient客户端=新DefaultHttpClient();
HTTPGET方法=新HTTPGET(新的URI(URL));
HTT presponse解析度= client.execute(法);
返回res.getEntity()的getContent()。
}I got stuck with a problem, In my program I am getting the xmlpullparser exception and I goggled it but as I am new to android I couldn't able to understand how to solve the issue. I corrected my program a lot still I couldn't, some one help me to solve this
I am using WSDL,KSOAP1.2.
Thanks in advance....!
Here is my code
public void register() { Log.v(TAG, "Trying to Login"); EditText etxt_user = (EditText) findViewById(R.id.regetfirstname); EditText etxt_pass = (EditText) findViewById(R.id.regetlastname); EditText etxt_dob = (EditText) findViewById(R.id.regetdob); EditText etxt_email = (EditText) findViewById(R.id.regetemail); EditText etxt_password = (EditText) findViewById(R.id.regetpwd); EditText etxt_confirmpassword = (EditText) findViewById(R.id.regetrepwd); EditText etxt_mobno = (EditText) findViewById(R.id.regetmobno); final Button regmalebtn = (Button) findViewById(R.id.regmalebtn); Button regfemalebtn = (Button) findViewById(R.id.regfemalebtn); // String deviceid = null; String fname = etxt_user.getText().toString(); String lname = etxt_pass.getText().toString(); String dob = etxt_dob.getText().toString(); String contact = etxt_mobno.getText().toString(); String password; String confirmpassword ; String email = etxt_email.getText().toString(); password = etxt_password.getText().toString(); confirmpassword = etxt_confirmpassword.getText().toString(); final SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); soapEnvelope.dotNet = true; soapEnvelope.setOutputSoapObject(request); HttpTransportSE aht = new HttpTransportSE(URL); try { // boolean pstatus = false; if (confirmpassword != null && password != null) { if (password.equals(confirmpassword)) { request.addProperty("password", password); } } regmalebtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // String gender = regmalebtn.getText().toString(); String gender; gender = ((Button)findViewById(R.id.regmalebtn)).getText().toString(); gender.equals("male"); request.addProperty("gender", gender); } }); regfemalebtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // String gender = regmalebtn.getText().toString(); // request.addProperty("gender", gender); String gender; gender = ((Button)findViewById(R.id.regfemalebtn)).getText().toString(); gender.equals("female"); request.addProperty("gender", gender); } }); request.addProperty("email", email); request.addProperty("contact", contact); request.addProperty("fname", fname); request.addProperty("lname", lname); request.addProperty("dateofbirth", dob); //request.addProperty("password", "password"); request.addProperty("latitude", 76); request.addProperty("longitude", 82); request.addProperty("device_id", "12345"); aht.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); aht.call(SOAP_ACTION, soapEnvelope); // SoapObject result = (SoapObject)soapEnvelope.getResponse(); SoapObject resultsRequestSOAP = (SoapObject) soapEnvelope.bodyIn; Log.v("TAG", String.valueOf(resultsRequestSOAP)); //String resultData; // resultData = request.getProperty(0).toString(); } catch (Exception e) { e.printStackTrace(); } } }
These are the logcat messages
06-20 18:12:23.099: WARN/System.err(688): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG @1:6 in java.io.InputStreamReader@43e88978) 06-20 18:12:23.099: WARN/System.err(688): at org.kxml2.io.KXmlParser.exception(KXmlParser.java:273) 06-20 18:12:23.108: WARN/System.err(688): at org.kxml2.io.KXmlParser.require(KXmlParser.java:1431) 06-20 18:12:23.108: WARN/System.err(688): at org.ksoap2.SoapEnvelope.parse(Unknown Source) 06-20 18:12:23.108: WARN/System.err(688): at org.ksoap2.transport.Transport.parseResponse(Unknown Source) 06-20 18:12:23.108: WARN/System.err(688): at org.ksoap2.transport.HttpTransportSE.call(Unknown Source) 06-20 18:12:23.118: WARN/System.err(688): at com.soap.Register.register(Register.java:189) 06-20 18:12:23.118: WARN/System.err(688): at com.soap.Register$1$1.run(Register.java:42)
解决方案public static void getAllXML(String url) throws XmlPullParserException, IOException, URISyntaxException{ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser parser = factory.newPullParser(); parser.setInput(new InputStreamReader(getUrlData(url))); XmlUtils.beginDocument(parser,"results"); int eventType = parser.getEventType(); do{ XmlUtils.nextElement(parser); parser.next(); eventType = parser.getEventType(); if(eventType == XmlPullParser.TEXT){ Log.d("test",parser.getText()); } } while (eventType != XmlPullParser.END_DOCUMENT) ; } public InputStream getUrlData(String url) throws URISyntaxException, ClientProtocolException, IOException { DefaultHttpClient client = new DefaultHttpClient(); HttpGet method = new HttpGet(new URI(url)); HttpResponse res = client.execute(method); return res.getEntity().getContent(); }
这篇关于安卓:XmlpullParser异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!