`
艳过留痕
  • 浏览: 40331 次
社区版块
存档分类

task sax解析

 
阅读更多

	private ProgressDialog  progressDialog;
	private Handler handler = new Handler();
	Runnable runnableUi = new Runnable() {
		@Override
		public void run() {
			// 更新界面
			progressDialog = ProgressDialog.show(AlarmDimActivity.this, null,"正在加载信息,请稍后...", true, true);
			try {
				path=URLUtil.FIND_ERR_NUMBER; 
				new QueryErrNumber().execute(path);
			} catch (Exception e) {
			}
			handler.postDelayed(runnableUi, 1000*900);
		}

	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.alarmdim);
		UI();
		Event();
		handler.post(runnableUi);
	}


	class QueryWNetErr extends AsyncTask<String, Void, List<HingErrWaringDao>> {
		@Override
		protected void onPostExecute(final List<HingErrWaringDao> hingErrWaringDaos) {
			super.onPostExecute(hingErrWaringDaos);
			progressDialog.dismiss();
			if (null == hingErrWaringDaos || hingErrWaringDaos.size() == 0) {
				Toast toast = Toast.makeText(getApplicationContext(),
						"暂无WCDMA性能数据!", Toast.LENGTH_SHORT);
				toast.setGravity(Gravity.CENTER, 0, 0);
				toast.show();
				return;
			}

			contentDefileList = new ArrayList<Map<String, String>>();
			Map<String, String> contentDefile;
			for (HingErrWaringDao hingErrWaringDao : hingErrWaringDaos) {
				contentDefile = new HashMap<String, String>();
				if ("CRITICAL".equals(hingErrWaringDao.getStr_org_severity())){
					contentDefile.put(TITLE, hingErrWaringDao.getTitle());
					contentDefile.put(ALARM_NODE, hingErrWaringDao.getAlarm_node());
					contentDefile.put(ALARM_TEXT0, hingErrWaringDao.getAlarm_text0());
					contentDefile.put(ALARM_TEXT1, hingErrWaringDao.getAlarm_text1());
					contentDefile.put(OCCUR_TIME, hingErrWaringDao.getOccur_time());
					contentDefile.put(STR_ORG_SEVERITY, hingErrWaringDao.getStr_org_severity());
					contentDefileList.add(contentDefile);
				}
			}
			isCurrentItems = new boolean[contentDefileList.size()];
			for (int i = 0; i < isCurrentItems.length; i++) {
				isCurrentItems[i] = false;
			}
			adapter = new FlexListAdapter();
			setListAdapter(adapter);

		}

		@Override
		protected List<HingErrWaringDao> doInBackground(String... params) {
			List<HingErrWaringDao> otherposition = null;
			try {
				URL url = new URL(params[0]);
				HttpURLConnection conn = (HttpURLConnection) url
						.openConnection();
				conn.setRequestMethod("GET");
				conn.setConnectTimeout(URLUtil.CONNECT_TIME * 1000);
				conn.setReadTimeout(URLUtil.CONNECT_TIME * 1000);
				conn.connect();
				InputStream inStream = conn.getInputStream();
				Log.e("userSen", inStream.toString());
				otherposition = new HingErrWaringService()
				.getWNetErr(inStream);
				inStream.close();
				conn.disconnect();

			} catch (Exception e) {
				e.printStackTrace();
			}
			return otherposition;
		}

	}

	




package com.easecom.zhwg.ctrl.scene.rail.warning;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import com.easecom.zhwg.ctrl.scene.propertiesview.WCDMAViewDao;

public class HingErrWaringService {
	public List<HingErrWaringDao> getWNetErr(InputStream inStream)
			throws Exception {
		SAXParserFactory factory = SAXParserFactory.newInstance();
		SAXParser parser = factory.newSAXParser();
		NoteReportHandler handler = new NoteReportHandler();
		parser.parse(inStream, handler);
		return handler.getUserReports();
	}

	private final class NoteReportHandler extends DefaultHandler {
		private List<HingErrWaringDao> hingErrWaringDaos;
		private HingErrWaringDao hingErrWaringDao = null;
		private String tag = null;

		public List<HingErrWaringDao> getUserReports() {
			return hingErrWaringDaos;
		}

		@Override
		public void startDocument() throws SAXException {
			hingErrWaringDaos = new ArrayList<HingErrWaringDao>();
		}

		@Override
		public void startElement(String uri, String localName, String qName,
				Attributes attributes) throws SAXException {
			if ("resultInfo".equals(qName)) {
				hingErrWaringDao = new HingErrWaringDao();
			}
			tag = qName;
		}

		@Override
		public void characters(char[] ch, int start, int length)
				throws SAXException {
			if (tag != null) {
				String data = new String(ch, start, length);
				if ("TITLE".equals(tag)) {
					hingErrWaringDao.setTitle(data);
//					Log.e("user time ", "date = " + data);
				} else if ("ALARM_NODE".equals(tag)) {
					hingErrWaringDao.setAlarm_node(data);
				} else if ("ALARM_TEXT0".equals(tag)) {
					hingErrWaringDao.setAlarm_text0(data);
				} else if ("ALARM_TEXT1".equals(tag)) {
					hingErrWaringDao.setAlarm_text1(data);
				} else if ("OCCUR_TIME".equals(tag)) {
					hingErrWaringDao.setOccur_time(data);
				} else if ("STR_ORG_SEVERITY".equals(tag)) {
					hingErrWaringDao.setStr_org_severity(data);
				} 
			}
		}

		@Override
		public void endElement(String uri, String localName, String qName)
				throws SAXException {
			if ("resultInfo".equals(qName)) {
				hingErrWaringDaos.add(hingErrWaringDao);
				hingErrWaringDao = null;
			}
			tag = null;
		}

	}
}

 
 


package com.easecom.zhwg.ctrl.scene.rail.warning;

public class HingErrWaringDao {
	// 标题
	private String title;
	private String alarm_node;
	private String alarm_text0;
	private String alarm_text1;
	// 发生时间
	private String occur_time;
	// 告警类别
	private String str_org_severity;

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getAlarm_node() {
		return alarm_node;
	}

	public void setAlarm_node(String alarm_node) {
		this.alarm_node = alarm_node;
	}

	public String getAlarm_text0() {
		return alarm_text0;
	}

	public void setAlarm_text0(String alarm_text0) {
		this.alarm_text0 = alarm_text0;
	}

	public String getAlarm_text1() {
		return alarm_text1;
	}

	public void setAlarm_text1(String alarm_text1) {
		this.alarm_text1 = alarm_text1;
	}

	public String getOccur_time() {
		return occur_time;
	}

	public void setOccur_time(String occur_time) {
		this.occur_time = occur_time;
	}

	public String getStr_org_severity() {
		return str_org_severity;
	}

	public void setStr_org_severity(String str_org_severity) {
		this.str_org_severity = str_org_severity;
	}

}

 
分享到:
评论

相关推荐

    ios-XML的DOM解析方式.zip

    此外,对于大数据量的XML文件,DOM解析可能会消耗大量内存,这时可以考虑使用SAX(Simple API for XML)解析方式,它是基于事件驱动的,只在需要时处理数据,更适合处理大型XML文档。但本示例主要关注DOM解析方法,...

    Java爬虫框架.pdf

    tagsoup和nekohtml都是SAX解析器,但tagsoup被认为更可靠,nekohtml性能更好。htmlparser在两者之下。实际应用中,可以结合使用或根据需求测试选择。 - **Handler**:SAX解析的回调方式能有效减少内存消耗,而DOM...

    ProgKievUa_PRO_Lesson2_task3

    **SAX解析**:SAX解析器采用事件驱动的方式,逐行读取XML文件,遇到元素开始、结束、属性等事件时触发回调函数。这种方式内存效率高,适合处理大文件,但不支持随机访问。 **StAX解析**:StAX是基于流的解析方式,...

    javaStudy-task3:任务3-XML解析器。 使用驱动程序类Main.java。 在output.txt文件中工作的结果

    使用SAX,DOM和StAX解析器进行解析。 使用比较器界面对对象进行排序。 使用XSD验证XML文档。 定义将已开发的XML文档转换为每个作业中指定的文档的方法。 选择7。近战武器。 近战武器可以根据以下方案进行构造:...

    android面试题[参考].pdf

    4. **XML解析**:Android中XML解析包括DOM解析、SAX解析和Pull解析。DOM一次性加载整个文档,适合小文件;SAX是事件驱动,逐行解析,节省内存;Pull解析类似SAX,但API更简单,适合流式处理。 5. **ListView优化**...

    android面试题

    4. **XML解析**:主要有DOM解析、SAX解析和Pull解析。DOM一次性加载整个XML文档,占用内存较大;SAX解析逐行读取,内存效率高但编程复杂;Pull解析类似于SAX,但提供更简洁的API,官方推荐使用。 5. **ListView优化...

    Android面试题

    4. **XML解析类**:DOM解析、SAX解析、Pull解析。DOM一次性加载整个XML文档,占用内存大但操作方便;SAX事件驱动,按需解析,内存消耗小但代码复杂;Pull解析与SAX类似,但更面向对象,易于使用。官方推荐Pull解析,...

    Java 爬虫监控管理平台

    - **Handler**:处理Parser解析出的内容,可以采用回调(visitor)方式对SAX事件进行响应。 3. **组件详解**: - **Scheduler**:负责启动和退出控制,10分钟内无变化则认为爬取完成。 - **Task Master**:根据...

    C#调用servlet 发送XML

    在Servlet中,可以使用`HttpServletRequest`对象的`getInputStream()`方法来获取XML数据,然后用Java的DOM或SAX解析器进行解析。 总结一下,C#调用Servlet发送XML涉及到以下关键技术点: 1. 使用HttpClient或...

    android技术面试整理附有详细答案.docx

    4. 解析XML的类主要有DOM解析器、SAX解析器和Pull解析器。DOM一次性加载整个XML文档,占用内存较大但操作方便;SAX是事件驱动的,只读取和处理XML的一部分,节省内存;Pull解析器是基于SAX的轻量级解析方式,允许向...

    安卓面试题及答案

    4、**XML解析类**:主要有DOM解析器、SAX解析器和Pull解析器。DOM一次性加载整个XML文档,适合小文件;SAX事件驱动,逐行读取,适合大文件;Pull解析器轻量级,类似SAX,但更易于使用,官方推荐。 5、**ListView...

    基于XMPP协议的Android即时通信应用项目源码

    2. **XML解析**:由于XMPP基于XML,因此需要一个高效的XML解析器,如Java的DOM或SAX解析器,或者第三方库如TinyXML或Pull解析器。 3. **事件驱动编程**:XMPP通信是基于事件的,如接收消息、用户状态变化等,需要...

    2012android面试大全

    通过以上内容,我们可以了解到Android中Activity和Task的启动模式、XML解析技术的基本概念以及Activity生命周期中的关键知识点。这些知识点对于Android开发者来说非常重要,能够帮助他们在实际开发过程中更好地理解...

    常见的android面试题.doc

    - **SAX**:也是事件驱动,适用于大文件解析。 - **DOM**:将整个XML文档加载到内存,形成树结构,方便访问,但占用资源较大。 6. **SQLite支持事务**: - SQLite完全支持SQL事务,通过`BEGIN`, `COMMIT`, `...

    android+java面试

    - SAX解析:事件驱动,逐行读取,节省内存,适用于大文件。 - XMLPullParser:拉式解析器,介于DOM和SAX之间,效率较高,易于使用。 - 官方推荐使用XMLPullParser,因为它既节省内存又易于控制。 5. **ListView...

    Android技术面试整理.doc

    SAX 是事件驱动的解析器,内存占用小,适合处理大型 XML 文件;DOM 将整个 XML 文件加载到内存中,方便访问,但对内存消耗较大;Pull 解析器类似 SAX,但更易于使用,适合移动设备。 5、ListView 优化: 优化包括...

    安卓面试shouji

    - **XmlPullParser**: 从输入流中拉取数据,性能介于SAX和DOM之间,易于控制解析过程。 6. **SQLite支持事务** - SQLite支持事务,可以通过BEGIN, COMMIT, ROLLBACK命令进行控制。优化性能可以通过合理设计数据库...

Global site tag (gtag.js) - Google Analytics