FileDocCategorySizeDatePackage
XParse.javaAPI DocExample1679Tue Dec 25 20:04:12 GMT 2001None

XParse.java

import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;

/** Parse an XML file using DOM, via JAXP.
 * @author Ian Darwin, ian@darwinsys.com
 * @version $Id: XParse.java,v 1.4 2001/12/26 01:04:12 ian Exp $
 */
public class XParse {

	/** Convert the file */
	public static void parse(String fileName, boolean validate) {
		try {
			System.err.println("Parsing " + fileName + "...");

			// Make the document a URL so relative DTD works.
			String uri = "file:" + new File(fileName).getAbsolutePath();

			DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
			if (validate)
				f.setValidating(true);
			DocumentBuilder p = f.newDocumentBuilder();
			Document doc = p.parse(uri);
			System.out.println("Parsed OK");

		} catch (SAXException ex) {
			System.err.println("+================================+");
			System.err.println("|         *Parse Error*          |");
			System.err.println("+================================+");
			System.err.println(ex.getClass());
			System.err.println(ex.getMessage());
			System.err.println("+================================+");
		} catch (Exception ex) {
			System.err.println("+================================+");
			System.err.println("|           *XML Error*          |");
			System.err.println("+================================+");
			System.err.println(ex.toString()); 
		}
	}

	public static void main(String[] av) {
		if (av.length == 0) {
			System.err.println("Usage: XParse file");
			return;
		}
		boolean validate = false;
		for (int i=0; i<av.length; i++) {
			if (av[i].equals("-validate"))
				validate = true;
			else
				parse(av[i], validate);
		}
	}
}