/** * SAXサンプルプログラム */ public class SaxSample extends org.xml.sax.helpers.DefaultHandler { /** * コンストラクタ */ public SaxSample() { // DefaultHandlerのコンストラクタを呼ぶ super(); } /** * 開始タグで呼ばれるメソッド * @param uri 名前空間のURI * @param localName ドキュメント内でのタグ名 * @param qName qualified名 * @param attributes このタグの属性 */ public void startElement( String uri, String localName, String qName, org.xml.sax.Attributes attributes) throws org.xml.sax.SAXException { if (uri == null || uri.length() == 0) { System.out.println("localName=" + localName + ",qName=" + qName); } else { System.out.println("uri=" + uri + ",localName=" + localName + ",qName=" + qName); } if (attributes == null) { System.out.println("attributes=null"); return; } int length = attributes.getLength(); if (length == 0) { System.out.println("attributes=null"); return; } System.out.println("attributes={"); for (int i = 0; i < length; i++) { System.out.println("\t" + attributes.getLocalName(i) + "=" + attributes.getValue(i)); } System.out.println("}"); } /** * main * @params args XMLファイル名(複数指定あり) */ public static void main(String[] args) { org.xml.sax.XMLReader reader = null; try { reader = org.xml.sax.helpers.XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser"); } catch (org.xml.sax.SAXException e) { e.printStackTrace(); System.exit(1); } SaxSample myHandler = new SaxSample(); reader.setContentHandler(myHandler); reader.setErrorHandler(myHandler); for (int i = 0; i < args.length; i++) { java.io.FileReader fr = null; try { fr = new java.io.FileReader(args[i]); } catch (java.io.FileNotFoundException e) { e.printStackTrace(); System.exit(1); } try { reader.parse(new org.xml.sax.InputSource(fr)); } catch (org.xml.sax.SAXException e) { e.printStackTrace(); System.exit(1); } catch (java.io.IOException e) { e.printStackTrace(); System.exit(1); } } } };