/*
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;
}
}
|