dom4j を使用して大きな xml ファイルを解析したいと考えています。気にしない要素を無視するためのパス式のイベント ハンドラーを登録できる dom4j の機能を使用しています。この機能については、http: //dom4j.sourceforge.net/dom4j-1.6.1/faq.html#large-docで説明されています。
私はそこから引用します:パスの終了タグが見つかった場合、そのパスに登録されているハンドラの onEnd メソッドが呼び出されます。
onStart メソッドと onEnd メソッドには ElementPath のインスタンスが渡されます。これを使用して、指定されたパスの現在の Element を取得できます。ハンドラがメモリの使用を節約するために構築中のツリーを「剪定」したい場合は、ハンドラの onEnd() メソッドで処理中の現在の Element の detach() メソッドを呼び出すだけです。」
私の問題は、ルートノードのすべての子が2つのメソッドによって処理されるように、どのパスを指定すればよいかわからないことです。
私のxmlファイルは次のようなものです:
<root .....>
<chef name="" ..../>
<chef name="" ..../>
<recipe name = .... />
<recipe name...../>
....
パスよりもシェフの要素を処理したい場合は、/root/chef になります。レシピ要素の場合、パスは /root/recipe になります。
しかし、dom4j が (onStart()、onEnd() で) シェフとレシピの両方の要素を処理できるようにするには、dom4j に与える必要があるパスは何ですか?
どうもありがとう!