android 解析WeatherWebService中调用getSupportCity得到的xml文件(3)
2014-08-15 10:55
435 查看
<pre name="code" class="java">package com.example.simpleclient; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.Menu; public class SimpleClient extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); test(); } public void test() { final Handler myHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 1: Log.i("tag", "返回到主线程。"); // System.out.println("返回到主线程了"); break; } super.handleMessage(msg); } }; new Thread(new Runnable() { public void run() { HttpClient client = new DefaultHttpClient(); StringBuilder builder = new StringBuilder(); HttpPost get = new HttpPost("http://www.webxml.com.cn/webservices/weatherwebservice.asmx/getSupportCity"); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("byProvinceName", "ALL")); try { get.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); HttpResponse response = client.execute(get); BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); for (String s = reader.readLine(); s != null; s = reader.readLine()) { builder.append(s); } Log.i("tag", "百度返回的数据:" + builder.toString()); byte[] midbytes=builder.toString().getBytes("UTF8"); parseXML(midbytes); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Message message = new Message(); message.what = 1; myHandler.sendMessage(message); } }).start(); } private boolean parseXML(byte[] bs) { DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance(); try { DocumentBuilder domBuilder = domfac.newDocumentBuilder(); // InputStream is = new FileInputStream(new File("D:/test1.xml")); InputStream is = new ByteArrayInputStream(bs); Document doc = domBuilder.parse(is); Element root = doc.getDocumentElement(); NodeList books = root.getChildNodes(); if(books!=null){ Log.i("tag", "length="+books.getLength()); for (int i = 0; i < books.getLength(); i++) { Node book = books.item(i); if(book.getNodeType()==Node.ELEMENT_NODE) { Log.i("tag", "type 00000 "); // String name=book.getNodeValue(); // String name= book.getLocalName(); String name = book.getTextContent(); Log.i("tag", "type 11111 name="+name); } } } return true; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
相关文章推荐
- Android-通过网络获取xml文件使用pull解析得到服务器中的信息(新闻客户端)
- AndroidManifest.xml 文件之详细解析
- AndroidManifest.xml文件解析(1)
- android 使用 pull 解析xml文件
- Android配置文件Manifest.xml如何被加载、解析的
- android中解析XML文件方式—DOM SAX PULL
- Android对应用程序的资源文件xml解析的源代码在哪里
- android之sax解析xml文件
- AndroidManifest.xml文件解析
- 掌间无限—Android 解析gbk、gb2312编码的xml文件
- AndroidManifest.xml文件解析
- Android中的AndroidManifest.xml文件解析
- Android开发之XML文件解析
- Android 中利用SAX ,Dom,pull解析 XML 文件
- AndroidManifest.xml 文件之详细解析 && permission和uses-permission的区别
- Android中XML文件常用解析方式的比较分析
- android开发--mp3播放器项目源代码(xml文件解析,.lrc,.mp3文件下载,同时显示歌词)
- android_xml解析之 使用PULL读取XML文件 .
- android中访问和解析xml文件
- 采用DOM4J中的SAXReader解析webservice返回的XML文件