ここでは、SAX (Simple API for XML)が役に立ちます。
DOM パーサーとは異なり、SAX パーサーは XML ドキュメントのメモリ内表現を作成しないため、高速でメモリ使用量が少なくなります。org.xml.sax.helpers.DefaultHandler
代わりに、SAX パーサーは、コールバックを呼び出すことによって、つまり、パーサーに提供されたインスタンスでメソッドを呼び出すことによって、クライアントに XML ドキュメント構造を通知します
。
実装例を次に示します。
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
DefaultHandler handler = new MyHandler();
parser.parse("file.xml", handler);
MyHandler
ドキュメント/要素の開始/終了などのイベントが生成されたときに実行するアクションを定義する場所。
class MyHandler extends DefaultHandler {
@Override
public void startDocument() throws SAXException {
}
@Override
public void endDocument() throws SAXException {
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
}
// To take specific actions for each chunk of character data (such as
// adding the data to a node or buffer, or printing it to a file).
@Override
public void characters(char ch[], int start, int length)
throws SAXException {
}
}