我正在编写自定义 Spring 命名空间处理程序(Java)。如果 XML 无效,我想报告包含行号(在解析的文档中)的错误消息,以便用户知道在哪里查看。但是,我不知道如何从 DOM 对象或其他方式中检索行号。
请注意,我说的是 XSD 验证未发现的错误(正确报告行号)。
甚至可以从命名空间处理程序内部获取此类信息吗?
谢谢, Ondrej
如果您使用的是 SAX 解析器,您可以扩展DefaultLocator类并在 setDocumentLocator 方法中注册一个定位器。当事件发生时,定位器会收到通知,因此您可以调用 getLineNumber() 方法来获取感兴趣的行号。