JavaでXMLメモ(SAX)

前にDOMをやったので、今度はSAXをやってみる。
JDK 1.4.2


前回と同じ、読み込むXML(ykhr-kokko2.xml)。







Javaソース。
めんどいので、1クラスで完結。


public class SaxReadTest extends DefaultHandler {

public static void main(String[] args) {
try {
SaxReadTest handler = new SaxReadTest();
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
parser.parse(new File("ykhr-kokko2.xml"), handler);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
if ("person".equals(qName)) {
String name = attributes.getValue("name");
String age = attributes.getValue("age");
String hobby = attributes.getValue("hobby");
System.out.println(name + "-" + age + "-" + hobby);
}
}

}

実行結果。

ykhr-25-Java
kokko-22-Game
うわっ、つまんねぇ。
DefaultHandlerにはもうちょいメソッドがあるけど、
気分が乗らないのでこれで終わり。


characters(char[] ch, int start, int length) メソッドにはこんな問題があるようだ。