`
ypf3027
  • 浏览: 304443 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解析XML和Propertites配置文件

阅读更多
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.FileConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;


/**
 * The class is used to parse config file(eg: *.xml file, *.properties file).
 * This class is a singleton class, you can use the method newInstance to get 
 * an instance.
 * 
 * @author Everest 07/09/2009 
 * @since 1.0
 *  
 */
public class ConfigUtil {
	/**	the default xml file to initializer */
	private static final String DEFAULT_XML = "everest.xml";

	private FileConfiguration config = null;

	private static ConfigUtil instance = null;

	private ConfigUtil(String configFile) throws ConfigurationException {
		if ((config == null) && (configFile.toLowerCase().endsWith(".xml"))) {
			config = new XMLConfiguration(configFile);
		} else if (configFile.toLowerCase().endsWith("properties")) {
			config = new PropertiesConfiguration(configFile);
		} else {
			config = new XMLConfiguration(DEFAULT_XML);
		}
		config.setReloadingStrategy(new FileChangedReloadingStrategy());
	}

	/**
	 * The method is used to get an instance of ConfigUtil
	 * 
	 * @param configFile    the file will be parsed
	 * @return              An instance of ConfigUtil
	 * @throws Exception    
	 */
	public static ConfigUtil newInstance(String configFile) throws Exception {
		if (instance == null) {
			try {
				instance = new ConfigUtil(configFile);
			} catch (ConfigurationException e) {
				throw new Exception("The file:[" + configFile
						+ "] can't be parsed", e);
			}
		}
		return instance;
	}

	/**
	 * The method is used to return a single value
	 * 
	 * @param exp  what you want to get(XPath Expression) 
	 * @return
	 */
	public String selectValue(String exp) {
		return config.getString(exp);
	}

	/**
	 * 
	 * @param exp
	 * @return
	 */
	public String[] selectValues(String exp) {
		return config.getStringArray(exp);
	}


	/**public static void main(String[] args) {
		try {
			ConfigUtil cu = newInstance("everest.xml");
			String serv = cu.selectValue("server.ip");
			String ip = cu.selectValue("server.port");
			System.out.println(serv+":"+ip);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}*/
}

 

 

   示例xml文件:everest.xml

<?xml version="1.0" encoding="utf-8"?>
<everest>
 <server>
  <ip>192.168.0.1</ip>
  <port>8080</port>
 </server>
</everest>

 

 

     注:附件中是需要的相关jar包,需要加到项目的配置路径下

  • lib.rar (1007.8 KB)
  • 下载次数: 86
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics