Mega Code Archive

 
Categories / Java / Development Class
 

Parse Properties Files

/*   Java, XML, and Web Services Bible   Mike Jasnowski   ISBN: 0-7645-4847-6 */ import org.xml.sax.*; import org.xml.sax.helpers.*; import java.util.Properties; import org.xml.sax.*; import org.xml.sax.helpers.*; import java.util.Properties; import java.util.Enumeration; import org.apache.xerces.parsers.*; public class ParseNonXML extends DefaultHandler{        public static void main(String args[]) throws SAXException{                       PropertyFileParser pfp = new PropertyFileParser();               pfp.setContentHandler(new ParseNonXML());               pfp.parse(buildProperties());        }                public static Properties buildProperties(){               Properties props = new Properties();               for (int i=0;i<10;i++)                    props.setProperty("key"+i,"value"+i);               return props;        }                public void startDocument(){System.out.println("<keys>");}        public void endDocument(){System.out.println("</keys>");}        public void characters(char[] data,int start,int end){               String str = new String(data,start,end);               System.out.print(str);        }        public void startElement(String uri,String qName,String lName,Attributes atts){               System.out.print("<"+lName+">");        }        public void endElement(String uri,String qName,String lName){               System.out.println("</"+lName+">");        } } class PropertyFileParser extends SAXParser{        private Properties props = null;        private ContentHandler handler = null;        public void parse(Properties props) throws SAXException{               handler = getContentHandler();               handler.startDocument();               Enumeration e = props.propertyNames();               while (e.hasMoreElements()){                      String key = (String)e.nextElement();                      String val = (String)props.getProperty(key);                      handler.startElement("",key,key,new AttributesImpl());                      char[] chars = getChars(val);                      handler.characters(chars,0,chars.length);                      handler.endElement("",key,key);                                    }               handler.endDocument();        }             private char[] getChars(String value){                char[] chars = new char[value.length()];                value.getChars(0,value.length(),chars,0);                return chars;        }         }