public interface Locator
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.
如果SAX解析器向SAX应用程序提供位置信息,则通过实现此接口,然后使用内容处理程序的setDocumentLocator
方法将实例传递给应用程序。 应用程序可以使用该对象来获取XML源文档中任何其他SAX事件的位置。
请注意,对象返回的结果将仅在每个回调方法的范围内有效:如果尝试在任何其他时间使用定位器,或解析完成后,应用程序将收到不可预测的结果。
SAX解析器不需要提供定位器,但是非常鼓励它们这样做。 如果解析器提供定位器,则在报告任何其他文档事件之前必须这样做。 如果应用程序收到startDocument
事件时没有设置定位器,应用程序应该假定定位器不可用。
ContentHandler.setDocumentLocator(org.xml.sax.Locator)
Modifier and Type | Method and Description |
---|---|
int |
getColumnNumber()
返回当前文档事件结束的列号。
|
int |
getLineNumber()
返回当前文档事件结束的行号。
|
String |
getPublicId()
返回当前文档事件的公共标识符。
|
String |
getSystemId()
返回当前文档事件的系统标识符。
|
String getPublicId()
返回值是文档实体或外部解析实体的公开标识符,其中触发事件的标记出现。
getSystemId()
String getSystemId()
返回值是文档实体或外部解析实体的系统标识符,其中触发事件的标记出现。
如果系统标识符是URL,解析器必须在将其传递给应用程序之前将其完全解析。 例如,文件名必须始终作为文件提供:... URL,而其他类型的相对URI也会根据其基础进行解析。
getPublicId()
int getLineNumber()
警告:方法的返回值仅作为诊断用途的近似值; 它不是提供足够的信息来编辑原始XML文档的字符内容。 在某些情况下,这些“行”数字与列显示的数字相匹配,而在其他情况下,由于内部实体扩展,它们可能与源文本不匹配。
返回值是文档实体或外部解析实体中触发事件的标记出现的行号的近似值。
如果可能,SAX驱动程序应该在与文档事件相关联的文本之后提供第一个字符的行位置。 第一行是第1行。
getColumnNumber()
int getColumnNumber()
char
一个数字。
警告:方法的返回值仅作为诊断用途的近似值; 它不是提供足够的信息来编辑原始XML文档的字符内容。 例如,当行包含组合字符序列,宽字符,代理对或双向文本时,该值可能不对应于文本编辑器的显示中的列。
返回值是文档实体或外部解析实体中触发事件的标记出现的列号的近似值。
如果可能,SAX驱动程序应该在与文档事件相关联的文本之后提供第一个字符的行位置。 每行的第一列是第1列。
getLineNumber()