package com.pingyijinren.test;

import android.util.Log;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler; /**
* Created by Administrator on 2016/5/19 0019.
*/
public class ContentHandler extends DefaultHandler {
private String nodeName;
private StringBuilder id;
private StringBuilder name;
private StringBuilder version; @Override
public void startDocument() throws SAXException{
id=new StringBuilder();
name=new StringBuilder();
version=new StringBuilder();
} @Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException{
nodeName=localName;
} @Override
public void characters(char[] ch,int start,int length) throws SAXException{
if(nodeName.equals("id")){
id.append(ch,start,length);
}
else if(nodeName.equals("name")){
name.append(ch,start,length);
}
else if(nodeName.equals("version")){
version.append(ch,start,length);
}
} @Override
public void endElement(String uri,String localName,String qName) throws SAXException{
if(localName.equals("app")){
Log.d("MainActivity","id is "+id.toString().trim());
Log.d("MainActivity","name is "+name.toString().trim());
Log.d("MainActivity","version is "+version.toString().trim()); id.setLength(0);
name.setLength(0);
version.setLength(0);
}
} @Override
public void endDocument() throws SAXException{}
}
package com.pingyijinren.test;

import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory; import java.io.BufferedReader;
import java.io.EOFException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.URL; import javax.xml.parsers.SAXParserFactory; public class MainActivity extends AppCompatActivity{
private Button button;
private TextView textView;
private static final int SHOW_RESPONSE=0;
private Handler handler=new Handler(){
public void handleMessage(Message message){
switch(message.what){
case SHOW_RESPONSE:
String response=(String)message.obj;
textView.setText(response);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button);
textView=(TextView)findViewById(R.id.textView); button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendRequestWithHttpURLConnection();
}
});
} private void sendRequestWithHttpURLConnection(){
new Thread(new Runnable(){
@Override
public void run(){
try{
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet=new HttpGet("http://172.29.209.1/get_data.xml");
HttpResponse httpResponse=httpClient.execute(httpGet);
if(httpResponse.getStatusLine().getStatusCode()==200){
HttpEntity httpEntity=httpResponse.getEntity();
String response= EntityUtils.toString(httpEntity,"utf-8"); Log.d("MainActivity",response); parseXMLWithSAX(response);
}
}
catch(Exception e){
e.printStackTrace();
} }
}).start();
} private void parseXMLWithSAX(String xmlData){
try{
SAXParserFactory factory=SAXParserFactory.newInstance();
XMLReader xmlReader=factory.newSAXParser().getXMLReader();
ContentHandler handler=new ContentHandler();
xmlReader.setContentHandler(handler);
xmlReader.parse(new InputSource(new StringReader(xmlData)));
}
catch(Exception e){
e.printStackTrace();
}
}
}

最新文章

  1. Is the Information Reliable? -POJ2983差分约束
  2. 【BZOJ-4213】贪吃蛇 有上下界的费用流
  3. unix exec族函数 关于参数的疑惑
  4. C#学习笔记(六)——面向对象编程简介
  5. 使用jquery再次封装ajax
  6. S1 :闭包
  7. IIS 6.0 401 错误
  8. HDU2102 A计划
  9. uva 12304
  10. android128 zhihuibeijing 科大讯飞 语音识别
  11. JS基于时间戳写的浏览访问人数
  12. MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
  13. flexbox应用举例
  14. 设计模式 --迭代器模式(Iterator)
  15. Redis分布式队列和缓存更新
  16. 隐藏input光标和输入内容方法
  17. 深度解剖session运行原理
  18. oracle删除dbf导致的oracle工具不能正常使用
  19. js 时间戳转特定格式的日期
  20. How to convert a byte to its binary string representation

热门文章

  1. Android开发学习——开发调试工具-DDMS应用,ADB进程,Logcat,Eclipse Debug调试
  2. PHP到浏览器的缓存机制
  3. 浅谈Key-value 存储——SILT
  4. Youtube-dl 简短使用总结
  5. Ubuntu14.04环境下java web运行环境搭建
  6. Seating Arrangement
  7. 了解Java密码扩展的基础
  8. java.lang.IllegalArgumentException: Result Maps collection already contains value for com.zhmy.businessapi.mapper.CompanyMapper.BaseResultMap
  9. li标签和checkbox绑定
  10. h5移动端常见虚拟键盘顶起底部导航栏解决办法