java xml作为配置文件,读取

来源:互联网 发布:杭州淘宝美工招聘网 编辑:程序博客网 时间:2024/04/29 12:51

  每个项目都需要配置文件来把可变的东西抽出来,方便程序的开发和维护:

  自己编写了一个xml文件读取类,并可以以字符串形式调用xml文件中的属性与其值,其实也可以,直接一个static函数直接获得属性与其值,然而,我没这么做。估计这么做会更好。不多说,就算是改也容易。先把source提供出来:

/* * Property.java * * Created on 2008.7.11, am8:56 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */package mail;import java.io.File;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList;/** * * @author user */public class Property {        private Element _rootElement = null;    /** Creates a new instance of Property */    public Property() {        //get the current directory        File directory = new File("");        String pathStr = directory.getAbsolutePath();        try {             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();            DocumentBuilder builder = factory.newDocumentBuilder();            Document document = builder.parse(new File(pathStr + "//" + CONSTANT.xmlFileName));            _rootElement = document.getDocumentElement();        } catch (Exception e) {            Logger.println("exception:" + e.getMessage());        }    }        /* get property with the specified name     * param: property name     * return: the value of the property     */    public String getProperty(String propertyName){        try{            NodeList list = _rootElement.getElementsByTagName(propertyName);            if(list.getLength() == 0){throw new Exception("xml error: there is no such property /"" + propertyName + "/"");}            Element element = (Element) list.item(0);            return element.getChildNodes().item(0).getNodeValue();        }catch(Exception ex){            Logger.println(ex.getMessage());            return "";        }    }        /* factory of this class     * return the object of this class     */    public static Property getInstance(){        Property _property = new Property();        return _property;    }    }