您的位置:首页 > 移动开发 > Android开发

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

}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: