如何从android中的URL读取XML文件?

时间:2017-09-07 09:40:14

标签: android xml

我在服务器上有一个带有版本标记的XML文件。

我希望获得该版本并将其与我的应用版本进行比较,如果它们不相同则显示小吃吧。

但我不知道如何阅读XML文件PLZ帮助我。

这是服务器上的XML文件:

http://adpring.com/uploads/faravani.xml

2 个答案:

答案 0 :(得分:0)

首先,这不是一个XML,这是Json。

第二个:

JSONObject jsonObj = new JSONObject("YOUR STRING HERE");

你可以从对象中提取每个键所需的值,在你的情况下是版本。

答案 1 :(得分:0)

您可以使用HTTPURLConnection请求xml内容,然后使用XmlPullParser进行解析。下面是一个简单的例子。

new Thread(new Runnable() {

        private static final String TAG_VERSION = "version";

        @Override
        public void run() {
            try {
                XmlPullParser pullParser = XmlPullParserFactory.newInstance().newPullParser();
                URL url = new URL("http://adpring.com/uploads/faravani.xml");
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.connect();

                if (urlConnection.getResponseCode() != HttpURLConnection.HTTP_OK) {
                    Log.e(TAG, "run: http request error");
                    return;
                }

                pullParser.setInput(new InputStreamReader(urlConnection.getInputStream()));

                int eventType = pullParser.getEventType();

                String currentTag = null;
                while (eventType != XmlPullParser.END_DOCUMENT) {
                    if (eventType == XmlPullParser.START_DOCUMENT) {

                    } else if(eventType == XmlPullParser.START_TAG) {
                        currentTag = pullParser.getName();
                    } else if(eventType == XmlPullParser.END_TAG) {

                    } else if(eventType == XmlPullParser.TEXT) {
                        if (currentTag != null && TAG_VERSION.equals(currentTag)) {
                            currentTag = null;
                            Log.d(TAG, "run: version string " + pullParser.getText().trim());
                        }
                    }

                    eventType = pullParser.next();
                }
            } catch (XmlPullParserException | IOException e) {
                e.printStackTrace();
            }

        }
    }).start();