JAVA解析XML(StAX)

本文介绍了JAVA中使用StAX解析XML的方法,通过示例展示如何将XML文档转化为一系列事件,包括主要和次要事件的解析过程。
摘要由CSDN通过智能技术生成

<?xml version="1.0"?>

<!-- xxxtask, not xxxChecker -->

<service>
	<item>
		<task>HostAliveTask</task>
		<strategy>repeat</strategy>
		<repeatFreq>180</repeatFreq>
	</item>
	<item>
		<task>WebpageRespTask</task>
		<strategy>repeat</strategy>
		<repeatFreq>180</repeatFreq>
	</item>
	
	<item>
		<task>AlarmNumTask</task>
		<strategy>daily</strategy>
		<dailyRuntime>16:45:00</dailyRuntime>
	</item>
</service>


import global.Global;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;

import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.EndElement;
import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent;

import org.apache.log4j.Logger;

/**
 * schedule the checking task.
 */
public class Scheduler {
//	private static final String TAG_SERVICE = "service";
	private static final String TAG_ITEM = "item";
	private static final String TAG_TASK = "task";
	
	private static final String TAG_STRATEGY = "strategy";
	private static final String STRATEGE_REPEAT = "repeat";
	private static final String STRATEGE_DAILY = "daily";
	
	private static final String TAG_REPEATFREQ = "repeatFreq";
	private static final String TAG_DAILYRUNTIME = "dailyRuntime";
	
	private static Logger _logger = Logger.getLogger(Scheduler.class);
	
	void readConfig(){
		try {
			// First create a new XMLInputFactory
			XMLInputFactory inputFactory = XMLInputFactory.newInstance();
			inputFactory.setProperty("javax.xml.stream.isCoalescing", true); //否则读取多行数据时出问题

			// Setup a new eventReader
			InputStream in = new FileInputStream(Global.SERVICE_CONFIGURE_FILE);
			XMLEventReader eventReader = inputFactory.createXMLEventReader(in);

			// One specification
			String task 	= null;
			String strategy = null;
			Integer freq 	= null;// by second
			
			// for daily job
			Date firstTime 	= null;
			Calendar calendar = Calendar.getInstance();  
	        
			// Read the XML document
			while (eventReader.hasNext()) {
				XMLEvent event = eventReader.nextEvent();

				if (event.isStartElement()) {
					StartElement startElement = event.asStartElement();

			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值