-----------------------------------------开始-------------------------------------------------
- package xml.xmlreader;
- import java.io.File;
- import java.net.URL;
- import java.util.Properties;
- import javax.xml.parsers.SAXParser;
- import javax.xml.parsers.SAXParserFactory;
- public class CFGParser {
- private Properties props;
- public Properties getProps() {
- return props;
- }
- public void setProps(Properties props) {
- this.props = props;
- }
- public void parse(String filename) throws Exception
- {
- CFGHandler handler = new CFGHandler();
- SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setNamespaceAware(false);
- factory.setValidating(false);
- SAXParser parser = factory.newSAXParser();
- URL confURL = super.getClass().getClassLoader().getResource(filename);
- if (confURL == null) {
- System.out.println("Can't find configration file.");
- return;
- }
- try
- {
- parser.parse(confURL.toString(), handler);
- this.props = handler.getProps();
- }
- finally {
- factory = null;
- parser = null;
- handler = null;
- }
- }
- public void parseFile(String filename)
- throws Exception
- {
- CFGHandler handler = new CFGHandler();
- SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setNamespaceAware(false);
- factory.setValidating(false);
- SAXParser parser = factory.newSAXParser();
- File f = new File(filename);
- if ((f == null) || (!f.exists()))
- return;
- try
- {
- parser.parse(f, handler);
- this.props = handler.getProps();
- }
- finally {
- factory = null;
- parser = null;
- handler = null;
- }
- }
- }
- package xml.xmlreader;
- import java.util.Properties;
- import org.xml.sax.Attributes;
- import org.xml.sax.SAXException;
- import org.xml.sax.helpers.DefaultHandler;
- public class CFGHandler extends DefaultHandler
- {
- private Properties props;
- private String currentSet;
- private String currentName;
- private StringBuffer currentValue = new StringBuffer();
- public CFGHandler()
- {
- this.props = new Properties();
- }
- public Properties getProps() {
- return this.props;
- }
- public void startElement(String uri, String localName, String qName, Attributes attributes)
- throws SAXException
- {
- this.currentValue.delete(0, this.currentValue.length());
- this.currentName = qName;
- }
- public void characters(char[] ch, int start, int length) throws SAXException
- {
- this.currentValue.append(ch, start, length);
- }
- public void endElement(String uri, String localName, String qName)
- throws SAXException
- {
- this.props.put(qName.toLowerCase(), this.currentValue.toString().trim());
- }
- }
- xml文件
- <?xml version="1.0" encoding="UTF-8"?>
- <xml-body>
- <refresh_userlist desc="用户列表刷新间隔时间(秒)">6</refresh_userlist>
- <refresh_message desc="短消息刷新间隔时间(秒)">10</refresh_message>
- <morningbegin desc="上午上班时间">23:00</morningbegin>
- <morningend desc="上午下班时间">12:00</morningend>
- <afternoonbegin desc="下午上班时间">18:00</afternoonbegin>
- </xml-body>
jsp获取各个节点的值:
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <html>
- <jsp:useBean id="cfgp" scope="page" class="xml.xmlreader.CFGParser"></jsp:useBean>
- <body>
- <%
- cfgp.parse("kaoqin.xml");
- Properties pro = cfgp.getProps();
- String stTime = pro.getProperty("morningbegin");
- String edTime = pro.getProperty("morningend");
- String afternoonbegin = pro.getProperty("afternoonbegin");
-
- out.println(stTime+"\n"+edTime+"\n"+afternoonbegin);
- System.out.println(stTime+"\n"+edTime+"\n"+afternoonbegin);
- %>
- </body>
- </html>
转自:http://blog.163.com/lujun19888@126/blog/static/3082197220103304016296/
阅读(3986) | 评论(0) | 转发(0) |