この質問のように、XML を解析するときに正確な位置を記録しようとしています。
Locator行番号と列番号を記録するために渡された SAX を既に使用していsetDocumentLocator()ますが、ファイルの先頭からのオフセットは得られません。ファイル全体を再読み取りせずに、SAX パーサーまたは各行のオフセットによってこれまでに読み取られたバイト数を見つける方法はありますか?
仮に、ApacheCommonsIOのCountingInputStreamを使用できます。
SAXParser の代わりに XMLStreamReader を使用することを提案する別の質問と回答を見つけましgetLocation().getCharacterOffset()た。それはすでに私が必要とするものを正確に持っています。