android 解析WeatherWebService中调用getSupportCity得到的xml文件(3)

来源:互联网 发布:在excel中如何编程 编辑:程序博客网 时间:2024/06/06 20:41
<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 {@Overrideprotected 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;}   @Overridepublic 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;}}

                                             
0 0