首页 > 系统 > Android > 正文

Android 如何解析XML文件(底层实现)

2019-11-08 02:19:49
字体:
来源:转载
供稿:网友

解析xml文件要获取URL地址    今天我使用的是tomcat   以解析tomcat中的xml文件为例,首先要获得网络的lp   在doc命令中输入ipconfig即可

浏览器中输入http://193.168.5.210:8080/persons.xml

出现xml文件中的数据 即可

如果用真机做测试则要注意,电脑连上一个热点,不要流量的,然后电脑开个热点手机连上电脑热点,打开手机浏览器输入相同网址,如果出现相同数据则连接成功

如果只是用模拟器来做测试则省去以上步骤   

最为中要的一点  代码不能写在主线程中  不然会报错,所以这里还用到了AsyncTask

然后代码的实现  首先获得URL地址

URL url=new URL("http://193.168.5.210:8080/persons.xml");,然后打开连接url.openConnection();,设置请求方式
setRequestMethod("GET");因为有事网络不好如果不优化,访问数据时会一直访问小号资源,所以要设置连接超时
urlConnection.setConnectTimeout(5000);  连接是否成功都有一个结果码  成功为200,其他结果码请查看
然后获取服务器返回的结果,最后打印出来
主要布局  就用了一个按钮  点击事件

主要代码

public class MainActivity extends AppCompatActivity {    PRivate Button paser_xml;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        paser_xml = (Button) findViewById(R.id.paser_xml);        paser_xml.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //获取网络数据xml                new myTask().execute();            }        });    }    class myTask extends AsyncTask{        @Override        protected Object doInBackground(Object[] objects) {            try {                URL url=new URL("http://193.168.5.210:8080/persons.xml");                HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();                //设置请求方式                urlConnection.setRequestMethod("GET");                //设置请求连接的时间(优化)                urlConnection.setConnectTimeout(5000);                //获取结果码                int code=urlConnection.getResponseCode();                if (code==200){                    //获取服务器返回来的结果                    InputStream is=urlConnection.getInputStream();                    //打印(读)                    BufferedReader br=new BufferedReader(new InputStreamReader(is));                    String str=null;                    while((str=br.readLine())!=null){                        Log.i("test",str);                    }                }            } catch (MalformedURLException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(Object o) {            super.onPostExecute(o);        }    }}

清单文件 配置访问网络的权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表