配置文件config.xml(XML形式,也可以使用别的形式):
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <crawl> <seed> <value>http://www.baidu.com</value> <description>爬取的网站,暂时只能爬一个站点</description> </seed> </crawl> </configuration>
package test; import java.io.IOException; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy; public class configexample { static XMLConfiguration config; public static void main(String[] args) throws IOException, ConfigurationException { // TODO Auto-generated method stub String configfile= "config.xml"; config = new XMLConfiguration(configfile); String seed = config.getString("crawl.seed.value");//获取 FileChangedReloadingStrategy strategy = new FileChangedReloadingStrategy(); //设置文件策略更新时间为10秒 strategy.setRefreshDelay(10000); //配置策略 config.setReloadingStrategy(strategy); System.out.println(seed); } }
需要导入的jar包有commons-configuration-1.9.jar commons-lang-2.6.jar commons-logging-1.1.1.jar
添加节点
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <crawl> <seed> <value>http://www.baidu.com</value> <description>爬取的网站,暂时只能爬一个站点</description> </seed> </crawl> <add> <nodes> <test attr="attrValue"> <child>value</child> </test> </nodes> </add> </configuration>
添加函数AddNode
public static void AddNode() throws ConfigurationException { ConfigurationNode node = new HierarchicalConfiguration.Node("test"); ConfigurationNode child = new HierarchicalConfiguration.Node("child"); child.setValue("value");//添加值 node.addChild(child); //添加属性 ConfigurationNode attr = new HierarchicalConfiguration.Node("attr"); attr.setValue("attrValue"); attr.setAttribute(true); node.addAttribute(attr); Collection nodes = new ArrayList(1); nodes.add(node); config.addNodes("add.nodes", nodes); config.save(); }
获取类表与属性值
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <crawl> <seed> <value>http://www.baidu.com</value> <description>爬取的网站,暂时只能爬一个站点</description> </seed> </crawl> <Belief> <state prob="0.10869565">other</state> <state prob="0.02173913">teach_ability</state> <state prob="0.010869565">answer_color</state> </Belief> </configuration>
public static void GetList(){ List<Object> list = config.getList("Belief.state"); for(int i=0;i<list.size();i++){ Double prob = config.getDouble("Belief.state("+i+")[@prob]");//获取属性值 System.out.println(list.get(i)+"\t"+prob); } }