2

私は XML を扱うのに比較的慣れておらず、javax.xml.parsers.SAXParser.

問題は、必要な情報が XML ファイルの先頭近くにあり、ドキュメント全体を解析する必要がないということです。-- 関連情報が特定されたときにファイルの解析を停止する「最善の」方法は何ですか?

(これまでのところ、私が考えることができる唯一の方法は、例外をスローすることです。)

4

3 に答える 3

2

StAXを使用できます。実際には、例外をスローすることなく、いつでも解析プロセスを停止します。

チェックアウト:

http://www.xml.com/pub/a/2003/09/17/stax.html

http://jcp.org/en/jsr/detail?id=173

于 2009-05-22T13:53:31.290 に答える
2

例外をスローすることが、例外を停止する唯一の方法です。例については、この IBM XML のヒントを参照してください。

今後の処理を停止する意図を知らせるために、おそらく独自の例外を実装する必要があります。そうすれば、処理の意図的な停止と意図しない停止 (予期しないシナリオに遭遇した場合など) を区別できます。

于 2009-05-22T14:31:13.600 に答える
1

Tom によって概説されているように、例外をスローすることがこの問題を解決する最良の方法であるようです:

public class MySAXTerminatorException extends SAXException {
...
}

public void startElement (String namespaceUri, String localName,
                          String qualifiedName, Attributes attributes)
                        throws SAXException {
    if (someConditionOrOther) {
        throw new MySAXTerminatorException();
    }
    ...
}
于 2010-11-23T14:14:14.807 に答える