Module  java.xml
软件包  org.xml.sax

Interface Locator

  • All Known Subinterfaces:
    Locator2
    所有已知实现类:
    Locator2ImplLocatorImpl


    public interface Locator
    用于将SAX事件与文档位置相关联的界面。
    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事件时没有设置定位器,则应用程序应该假定定位器不可用。

    从以下版本开始:
    1.4,SAX 1.0
    另请参见:
    ContentHandler.setDocumentLocator(org.xml.sax.Locator)
    • 方法详细信息

      • getPublicId

        String getPublicId​()
        返回当前文档事件的公共标识符。

        返回值是文档实体或外部解析实体的公开标识符,其中触发事件的标记出现。

        结果
        包含公共标识符的字符串,如果没有可用,则为null。
        另请参见:
        getSystemId()
      • getSystemId

        String getSystemId​()
        返回当前文档事件的系统标识符。

        返回值是文档实体或外部解析实体的系统标识符,其中触发事件的标记出现。

        如果系统标识符是URL,解析器必须在将其传递给应用程序之前将其完全解析。 例如,文件名必须始终作为文件提供:... URL,而其他类型的相对URI也会根据其基础进行解析。

        结果
        包含系统标识符的字符串,如果没有可用,则为空。
        另请参见:
        getPublicId()
      • getLineNumber

        int getLineNumber​()
        返回当前文档事件结束的行号。 行由行尾界定,在XML规范中定义。

        警告:方法的返回值仅作为诊断用途的近似值; 它不是提供足够的信息来编辑原始XML文档的字符内容。 在某些情况下,这些“行”数字与列显示的数字相匹配,而在其他情况下,由于内部实体扩展,它们可能与源文本不匹配。

        返回值是文档实体或外部解析实体中触发事件的标记出现的行号的近似值。

        如果可能,SAX驱动程序应该在与文档事件相关联的文本之后提供第一个字符的行位置。 第一行是第1行。

        结果
        行号,如果没有可用,则为-1。
        另请参见:
        getColumnNumber()
      • getColumnNumber

        int getColumnNumber​()
        返回当前文档事件结束的列号。 这是自从最后一行结束以来的基于Java的char值的一个数量。

        警告:方法的返回值仅作为诊断用途的近似值; 它不是提供足够的信息来编辑原始XML文档的字符内容。 例如,当行包含组合字符序列,宽字符,代理对或双向文本时,该值可能不对应于文本编辑器的显示中的列。

        返回值是文档实体或外部解析实体中触发事件的标记出现的列号的近似值。

        如果可能,SAX驱动程序应该在与文档事件相关联的文本之后提供第一个字符的行位置。 每行的第一列是第1列。

        结果
        列号,如果没有可用,则为-1。
        另请参见:
        getLineNumber()