就像在这个问题中一样,我试图在解析 XML 时记录确切的位置。
Locator
我已经使用传递给的 SAXsetDocumentLocator()
来记录行号和列号,但这并没有给出文件开头的偏移量。有没有办法在不重新读取整个文件的情况下找到 SAX 解析器到目前为止读取的字节数或每行的偏移量?
假设您可以使用来自 Apache commons IO 的 CountingInputStream。
我发现了另一个问题和答案,它建议使用 XMLStreamReader 而不是 SAXParser,因为它有getLocation().getCharacterOffset()
。它已经有了我需要的东西。