5

SAXParserでXMLReaderを使用する必要がある理由はありますか?私はこの種の使用法をかなりよく見ています:

        sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        LoginContentHandler uch = new LoginContentHandler();
        xr.setContentHandler(uch);
        xr.parse(new InputSource(in));

私は常にパーサーを次のように使用します。

        sp = spf.newSAXParser();
        DefaultHandler dh = new LoginContentHandler();
        sp.parse(in, dh);

何か特別な理由はありますか?私の道は短いので疑問に思っていますが、なぜXMLReaderを使用する必要があるのか​​よくわかりません。

4

1 に答える 1

5

だから質問に答えるために。

XMLReaderを使用している人は、ファイルをツリーオブジェクトとして保存し、Log(n)時に検索のためにファイルをトラバースできる十分なメモリがあると想定しています。

一方、SAXストレートを使用するということは、n時間以内にイベントベースのプラグインを使用していることを意味しますが、メモリフットプリントははるかに少なくなります。

それはスペースとスピードの間の選択です。

SAX自身のページからこれについて読んでいることに注意してください:

于 2011-04-23T05:28:35.470 に答える