私は XML を扱うのに比較的慣れておらず、javax.xml.parsers.SAXParser
.
問題は、必要な情報が XML ファイルの先頭近くにあり、ドキュメント全体を解析する必要がないということです。-- 関連情報が特定されたときにファイルの解析を停止する「最善の」方法は何ですか?
(これまでのところ、私が考えることができる唯一の方法は、例外をスローすることです。)
StAXを使用できます。実際には、例外をスローすることなく、いつでも解析プロセスを停止します。
チェックアウト:
http://www.xml.com/pub/a/2003/09/17/stax.html
http://jcp.org/en/jsr/detail?id=173
例外をスローすることが、例外を停止する唯一の方法です。例については、この IBM XML のヒントを参照してください。
今後の処理を停止する意図を知らせるために、おそらく独自の例外を実装する必要があります。そうすれば、処理の意図的な停止と意図しない停止 (予期しないシナリオに遭遇した場合など) を区別できます。
Tom によって概説されているように、例外をスローすることがこの問題を解決する最良の方法であるようです:
public class MySAXTerminatorException extends SAXException {
...
}
public void startElement (String namespaceUri, String localName,
String qualifiedName, Attributes attributes)
throws SAXException {
if (someConditionOrOther) {
throw new MySAXTerminatorException();
}
...
}