通过http远程访问解析xml

通过HttpURLConnection类实现http获取xml参考https://mp.csdn.net/postedit/85246429

 引入jdom来进行xml解析。

xml内容:

<?xml version='1.0' encoding='UTF-8'?>
<OTAPackage>
	<Model>
		<ModelID>elaa3420</ModelID>
		<NumberOfOTAPackage>2</NumberOfOTAPackage>
		<Package>
			<VersionID>1.0</VersionID>
		</Package>
        <Package>
			<VersionID>1.2</VersionID>
		</Package>

	</Model>
</OTAPackage>

实例代码:


package org.eclipse.leshan.standalone.utils;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONObject;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class parsexml {

    public static JSONObject savexmlUrl(String xmlUrl) {
        JSONObject xmlConfig = new JSONObject();
        try {
            URL url = new URL(xmlUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.connect();
            InputStream stream = conn.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
            StringBuffer document = new StringBuffer();
            String line = null;
            while ((line = reader.readLine()) != null) {
                document.append(line);
            }
            System.out.println(document);
            /*jdom 解析xml数据*/
            SAXBuilder sax = new SAXBuilder();
            Document doc = (Document) sax.build(new StringReader(document.toString()));
            Element stu = doc.getRootElement();
            List list = stu.getChildren("Model");
            for(int i=0;i<list.size();i++){
                Element model = (Element) list.get(i);

                String modelID = model.getChildText("ModelID");
                xmlConfig.put("boardname", modelID);
                String packagenum = model.getChildText("NumberOfOTAPackage");
                xmlConfig.put("pkgnum", packagenum);
                List packageList = model.getChildren("Package");
                ArrayList pkgVersions = new ArrayList();
                System.out.print(packageList.size());
                for(int j=0; j<packageList.size(); j++){
                    Element pkg = (Element) packageList.get(j);
                    String pkgVersion = pkg.getChildText("VersionID");
                    System.out.print(pkgVersion);
                    pkgVersions.add(pkgVersion);
                }
                xmlConfig.put("versions", pkgVersions);

            }
            conn.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        return xmlConfig;
    }
}

猜你喜欢

转载自blog.csdn.net/margin_0px/article/details/85246369