加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

发送解析XML

发布时间:2020-12-15 22:29:19 所属栏目:百科 来源:网络整理
导读:// 用于创建一个XML文件的类 public class XmlHandler { public String writeXml(ArrayListString dataList) { StringWriter xmlWriter = new StringWriter(); try { // 创建XmlSerializer XmlPullParserFactory pullParserFactory = XmlPullParserFactory.n

// 用于创建一个XML文件的类

public class XmlHandler {
public String writeXml(ArrayList<String> dataList) {
StringWriter xmlWriter = new StringWriter();

try {
// 创建XmlSerializer
XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance();
XmlSerializer xmlSerializer = pullParserFactory.newSerializer();

xmlSerializer.setOutput(xmlWriter);

// 写xml文件
// <?xml version="1.0" encoding="UTF-8" standlone="yes" ?>
xmlSerializer.startDocument("UTF-8",true);

// <feed number="25">
xmlSerializer.startTag("","feed");
xmlSerializer.attribute("","number",String.valueOf(dataList.size()));
//<entry>
xmlSerializer.startTag("","entry");

// <title> value </title>
xmlSerializer.startTag("","title");
xmlSerializer.text(dataList.get(0));
xmlSerializer.endTag("","title");

// <telphone> value </telphone>
xmlSerializer.startTag("","telephone");
xmlSerializer.text(dataList.get(1));
xmlSerializer.endTag("","telephone");

// <helpData> value </ helpData>
xmlSerializer.startTag("","sendData");
xmlSerializer.text(dataList.get(2));
xmlSerializer.endTag("","sendData");

// <date> value </value>
xmlSerializer.startTag("","date");
xmlSerializer.text(dataList.get(3));
xmlSerializer.endTag("","date");

xmlSerializer.endTag("","entry");

xmlSerializer.endTag("","feed");

xmlSerializer.endDocument();
}
catch(Exception ex) {
ex.printStackTrace();
}

// xml创建完成,返回数据
return xmlWriter.toString();
}

}

// 创建xml文件

String createXml() {

ArrayList<String> dataList = null;
dataList = new ArrayList<String>();

dataList.add(0,"");
TelephonyManager phoneManager = (TelephonyManager)
XmlSend.this.getSystemService(Context.TELEPHONY_SERVICE);

// 此处需要添加一个获取电话号码的服务

// <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
dataList.add(1,phoneManager.getLine1Number());
dataList.add(2,editText.getText().toString().trim());

// 获取系统当前时间
Time time = new Time("GMT+8");
time.setToNow();
String strCurTime = time.year + ":" + time.month + ":" + time.monthDay
+ " " + time.hour + ":" + time.minute;
dataList.add(3,strCurTime);
XmlHandler handler = new XmlHandler();

return handler.writeXml(dataList);
}

// 发送XML到服务器并解析返回结果

boolean sendXml(String xmlData) throws IOException,XmlPullParserException,URISyntaxException {

// 向服务器发送xml文件

// 里面还有些问题,现在也没有该了 URL url = new URL("..."); // 打开服务器 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); // 设置超时值 conn.setConnectTimeout(5000); conn.setRequestMethod("POST"); // 设置发送字符串的编码格式 conn.setRequestProperty("Content-Type","text/xml; charset=UTF-8"); OutputStream outStream = conn.getOutputStream(); OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream); outStreamWriter.write(xmlData); outStreamWriter.close(); outStream.close(); // 等待服务器返回发送结果,解析xml数据查看是否发送成功 URI uri = new URI("..."); HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(uri); HttpResponse response = client.execute(get); InputStream inputStream = response.getEntity().getContent(); XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser parser = factory.newPullParser(); parser.setInput(inputStream,"UTF-8"); for(int i = parser.getEventType(); i != XmlPullParser.END_DOCUMENT; i = parser.next()) { // 需要修改其xml的文件名 if(i == XmlPullParser.START_TAG && parser.getName().equals("title")) { Toast.makeText(XmlSend.this,"发送成功",Toast.LENGTH_SHORT); break; } } return true; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读