SAX サンプル [4]
SAX を使ったサンプルプログラム(XML の各行数・列数を表示)
サンプル
printLoactionsLineWithSAX.java
import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; public class printLoactionsLineWithSAX extends DefaultHandler { Locator locator; public static void main(String args[]) { try { printLoactionsLineWithSAX handler = new printLoactionsLineWithSAX(); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); parser.parse(".\\src\\employee.xml", handler); } catch (Exception ex) { System.out.println(ex); System.out.println("Parser not support" ); } } public void setDocumentLocator(Locator locator) { this.locator = locator; } public void startDocument() { printLocation("statDocument() method called at " ); } public void startElement(String namesapceURI, String localName, String qualifiedName, Attributes atts) { printLocation("startElement() method called at " ); } public void endElement(String namesapceURI, String localName, String qualifiedName, Attributes atts) { printLocation("endElement() method called at " ); } public void charcters(char text[], int length) { printLocation("charcters() method called at " ); } private void printLocation(String location) { int line = locator.getLineNumber(); int column = locator.getColumnNumber(); System.out.println(location + " Line Number : " + line + "\tCoulumn Number : " + column); } }
employee.xml(入力ファイル)
<?xml version="1.0"?> <employee-detail> <employee> <Name>test1</Name> <id name="employee">id1</id> <email id="1">____xxx____1@xxx.com</email> </employee> <employee> <Name name="teacher">test2</Name> <id>id2</id> <email id="2">____xxx____2@xxx.com</email> </employee> </employee-detail>
出力
statDocument() method called at Line Number : 1 Coulumn Number : 1 startElement() method called at Line Number : 2 Coulumn Number : 18 startElement() method called at Line Number : 3 Coulumn Number : 12 startElement() method called at Line Number : 4 Coulumn Number : 9 startElement() method called at Line Number : 5 Coulumn Number : 23 startElement() method called at Line Number : 6 Coulumn Number : 17 startElement() method called at Line Number : 8 Coulumn Number : 12 startElement() method called at Line Number : 9 Coulumn Number : 24 startElement() method called at Line Number : 10 Coulumn Number : 7 startElement() method called at Line Number : 11 Coulumn Number : 17
関連記事
SAX
http://blogs.yahoo.co.jp/dk521123/6887527.htmlhttp://blogs.yahoo.co.jp/dk521123/6887579.html
http://blogs.yahoo.co.jp/dk521123/6888165.html
http://blogs.yahoo.co.jp/dk521123/6905573.html
http://blogs.yahoo.co.jp/dk521123/7962633.html
DOM
http://blogs.yahoo.co.jp/dk521123/6888291.htmlhttp://blogs.yahoo.co.jp/dk521123/6888466.html
http://blogs.yahoo.co.jp/dk521123/6901358.html
http://blogs.yahoo.co.jp/dk521123/6902765.html
http://blogs.yahoo.co.jp/dk521123/6887189.html