- <MyConfig>
- <ServerName>nile</ServerName>
- <ServerPort>8079</ServerPort>
- </MyConfig>
- package com.digestersample;
- import java.io.File;
- import java.io.IOException;
- import org.apache.commons.digester.Digester;
- import org.xml.sax.SAXException;
- public class MyConfig {
- private String serverName;
- private String serverPort;
- public MyConfig(String configFile) throws IOException, SAXException
- {
- Digester digester = new Digester();
- digester.setValidating(false);
- digester.addObjectCreate("MyConfig", MyConfig.class);
- digester.addCallMethod("MyConfig/ServerName", "setServerName", 0);
- digester.addCallMethod("MyConfig/ServerPort", "setServerPort", 0);
- System.out.println("Creating MyConfig...");
- MyConfig mc = (MyConfig) digester.parse(new File(configFile));
- System.out.println("Done.");
- System.out.println("Port: " + mc.getServerName());
- System.out.println("Port: " + mc.getServerPort());
- }
- public String getServerName() {
- return serverName;
- }
- public void setServerName(String serverName) {
- this.serverName = serverName;
- }
- public String getServerPort() {
- return serverPort;
- }
- public void setServerPort(String serverPort) {
- this.serverPort = serverPort;
- }
- }
- package com.digestersample;
- import java.io.IOException;
- import org.xml.sax.SAXException;
- public class MyOtherClass {
- public static void main(String[] args) {
- MyConfig mc;
- try {
- mc = new MyConfig("/home/user/MyConfig.xml");
- System.out.println( mc.getServerName() );
- System.out.println( mc.getServerPort() );
- } catch (IOException e) {
- e.printStackTrace();
- } catch (SAXException e) {
- e.printStackTrace();
- }
- }
- }
- public class MyConfigFactory
- public MyConfig createMyConfig(String configFile) throws IOException, SAXException
- {
- Digester digester = new Digester();
- digester.setValidating(false);
- digester.addObjectCreate("MyConfig", MyConfig.class);
- digester.addCallMethod("MyConfig/ServerName", "setServerName", 0);
- digester.addCallMethod("MyConfig/ServerPort", "setServerPort", 0);
- MyConfig mc = (MyConfig) digester.parse(new File(configFile));
- return mc;
- }
- }
- @Root
- public class MyConfig {
- @Element
- private String serverName;
- @Element
- private int serverPort
- public MyConfig() {
- super();
- }
- public MyConfig(File file) {
- Style style = new CamelCaseStyle();
- Persister persister = new Persister(style);
- persister.read(this, file);
- }
- public String getServerName() {
- return name;
- }
- public int getServerPort() {
- return port;
- }
- }
- MyConfig mc = new MyConfig("/home/user/MyConfig.xml");
- System.out.println("Name: " + mc.getServerName());
- System.out.println("Port: " + mc.getServerPort());