1.解析网络数据:在tomcat的root下,分别写xml文件,json文件。注意编码格式,改为UTF-8;
- <?xml version="1.0" encoding="UTF-8"?>
- <student>
- <stu sid="1">
- <sname>1</sname>
- <sage>19</sage>
- <ssex>女</ssex>
- </stu>
- <stu sid="2">
- <sname>2</sname>
- <sage>19</sage>
- <ssex>男</ssex>
- </stu>
- <stu sid="3">
- <sname>3</sname>
- <sage>19</sage>
- <ssex>男</ssex>
- </stu>
- </student>
- {"count":3,"students":[{"sid":1,"sname":"1"},{"sid":2,"sname":"2"},{"sid":3,"sname":"3"}]}
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context="com.zking.parsexml.MainActivity">
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="获取xml的数据"
- android:onClick="getXML"/>
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="获取json的数据"
- android:onClick="getJson"/>
- </LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.zking.parsexml">
- <uses-permission android:name="android.permission.INTERNET"></uses-permission>
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity android:name=".MainActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN"/>
- <category android:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
- </manifest>
- package com.zking.parsexml;
- import java.util.List;
- /**
- * Created by Administrator on 2017/7/26 0026.
- */
- public class Out {
- private int count;
- private List<Students> students;
- public Out() {
- }
- public Out(int count, List<Students> students) {
- this.count = count;
- this.students = students;
- }
- public int getCount() {
- return count;
- }
- public void setCount(int count) {
- this.count = count;
- }
- public List<Students> getStudents() {
- return students;
- }
- public void setStudents(List<Students> students) {
- this.students = students;
- }
- }
- package com.zking.parsexml;
- /**
- * Created by Administrator on 2017/7/26 0026.
- */
- public class Students {
- private int sid;
- private String sname;
- public Students() {
- }
- public Students(int sid, String sname) {
- this.sid = sid;
- this.sname = sname;
- }
- public int getSid() {
- return sid;
- }
- public void setSid(int sid) {
- this.sid = sid;
- }
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- }
- package com.zking.parsexml;
- import android.app.ProgressDialog;
- import android.os.AsyncTask;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.util.Xml;
- import android.view.View;
- import com.alibaba.fastjson.JSON;
- import org.xmlpull.v1.XmlPullParser;
- import org.xmlpull.v1.XmlPullParserException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.List;
- public class MainActivity extends AppCompatActivity {
- private ProgressDialog pd;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- pd = new ProgressDialog(this);
- pd.setMessage("拼命加载中");
- }
- public void getXML(View view){
- new MyGetXML().execute();
- }
- class MyGetXML extends AsyncTask{
- @Override
- protected Object doInBackground(Object[] params) {
- //在后台运行数据
- //获取访问网络数据路径
- String path="http://192.168.43.22:8080/student.xml";
- //加载路径
- try {
- URL url=new URL(path);
- //打开网址
- HttpURLConnection httpURLConnection= (HttpURLConnection) url.openConnection();
- //设置请求方式
- httpURLConnection.setRequestMethod("GET");
- //设置请求时间(获取数据)
- httpURLConnection.setConnectTimeout(5000);
- //获取响应码
- int a=httpURLConnection.getResponseCode();
- if(a==200){
- //获取数据--以流的方式
- InputStream is = httpURLConnection.getInputStream();
- /* int len=0;
- byte[]b=new byte[1024];
- StringBuffer sb=new StringBuffer();
- while ((len= is.read(b))!=-1){
- String s=new String(b,0,len);
- sb.append(s);
- }*/
- //解析XML
- XmlPullParser xmlPullParser= Xml.newPullParser();
- xmlPullParser.setInput(is,"UTF-8");
- //解析标签类型
- int type=xmlPullParser.getEventType();
- while(type!=XmlPullParser.END_DOCUMENT){
- switch (type) {
- case XmlPullParser.START_TAG:
- //获取开始标签
- String start=xmlPullParser.getName();
- if("stu".equals(start)){
- String sid= xmlPullParser.getAttributeValue(0);
- Log.i("test",sid);
- }else if("sname".equals(start)){
- String sname= xmlPullParser.nextText();
- Log.i("test",sname);
- }else if("sage".equals(start)){
- String sage= xmlPullParser.nextText();
- Log.i("test",sage);
- }else if("ssex".equals(start)){
- String ssex=xmlPullParser.nextText();
- Log.i("test",ssex);
- }
- break;
- case XmlPullParser.END_TAG:
- break;
- }
- type=xmlPullParser.next();
- }
- // Log.i("test",sb.toString());
- is.close();
- }
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (XmlPullParserException e) {
- e.printStackTrace();
- }
- return null;
- }
- @Override
- protected void onPostExecute(Object o) {
- //刷新界面
- super.onPostExecute(o);
- }
- }
- public void getJson(View view){
- new MyGetJson().execute();
- }
- class MyGetJson extends AsyncTask{
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- pd.show();
- }
- @Override
- protected Object doInBackground(Object[] params) {
- //获取网络路径
- String path="http://192.168.43.22:8080/students.json";
- //加载网络路径
- try {
- URL url=new URL(path);
- HttpURLConnection httpURLConnection= (HttpURLConnection) url.openConnection();
- //设置请求方式
- httpURLConnection.setRequestMethod("GET");
- //设置加载数据的时间
- httpURLConnection.setConnectTimeout(5000);
- if(httpURLConnection.getResponseCode()==200){
- InputStream is=httpURLConnection.getInputStream();
- int len=0;
- byte[]b=new byte[1024];
- StringBuffer sb=new StringBuffer();
- while((len=is.read(b))!=-1){
- String s=new String(b,0,len);
- sb.append(s);
- }
- Log.i("test",sb.toString());
- //解析json
- Out out=JSON.parseObject(sb.toString(),Out.class);
- int count=out.getCount();
- List<Students> students=out.getStudents();
- for (Students s : students) {
- Log.i("test",s.getSid()+" "+s.getSname());
- }
- is.close();
- }
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
- @Override
- protected void onPostExecute(Object o) {
- super.onPostExecute(o);
- pd.cancel();
- }
- }
- }