人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaでXMLファイルを読み込んでDOMにします。このときパーズに結構時間がかかる(数10KBのXMLで3秒程度)ので,この部分を高速化したいと思っています。あらかじめデシリアライズしておいてそれを読み込めばいいと思ったのですが,具体的な方法がわかりません。ご存知のかたは教えてください。
また,パーズの高速化するその他の方法でもかまいません。

●質問者: pomo123
●カテゴリ:コンピュータ インターネット
✍キーワード:DOM Java XML シリアライズ ファイル
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● stormbird
●25ポイント

JDomがおすすめです。SAX並の速度でDOM並の使いやすさというふれこみです。

http://jdom.org/

http://www-06.ibm.com/jp/developerworks/java/010810/j_j-jdom.htm...

設定ファイルの読み込みといった用途ならjakarta configurationあたりも候補になります。

http://jakarta.apache.org/commons/configuration/

http://journal.mycom.co.jp/news/2005/12/19/045.html

また用途次第ではJAXBなどのXMLバインディングも候補になります。

http://www.techscore.com/tech/J2SE/DOM/9.html

http://www.atmarkit.co.jp/fxml/rensai2/xmltool02/01.html

JavaでDOMを直接扱う機会は減っているかなーと思います。

◎質問者からの返答

JDOMはなかなか面白そうです。

JAXBは次に新しいのをつくるときにぜひ使いたいです。

今回は,既存システムのチューニングなので,上ものにあまり手をいれなくていい方法をはないかと探しています。

xercesのXMLSerializerをつかったらXMLファイルとして出力されてしまい,これを再度読み込んでも高速化にはつながりませんでした。


2 ● stormbird
●50ポイント ベストアンサー

実装依存を割り切れば、Documentの実装クラスにダウンキャストしてObjectOutputStreamで一応いけると思います。(実装クラスがSerializableをimplementしていれば。xercesのDocumentImplはOKですね。)

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("document.obj"));

out.writeObject((DocumentImpl)document);

どの程度効果があるか興味があります。

↓ダミーです。

http://www.koders.com/

◎質問者からの返答

教えていただいた方法で解決しました。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ