通过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;
}
}