Module java.xml

Class AttributesImpl

java.lang.Object
org.xml.sax.helpers.AttributesImpl
所有已实现的接口:
Attributes
直接已知的子类:
Attributes2Impl

public class AttributesImpl extends Object implements Attributes
Attributes接口的默认实现。

该类提供了SAX2 Attributes接口的默认实现,增加了操作器,以便可以修改或重用列表。

这个类有两种典型的用法:

  • startElement事件中获取Attributes对象的持久快照;或
  • 在SAX2驱动程序或过滤器中构造或修改Attributes对象。
  • 这个类取代了现在已弃用的SAX1 AttributeListImpl类;除了支持更新的Attributes接口而不是已弃用的AttributeList接口之外,它还包括一个更高效的实现,使用单个数组而不是一组向量。

    自从:
    1.4, SAX 2.0
    • Constructor Details

      • AttributesImpl

        public AttributesImpl()
        构造一个新的、空的AttributesImpl对象。
      • AttributesImpl

        public AttributesImpl(Attributes atts)
        复制现有的Attributes对象。

        这个构造函数在startElement事件中特别有用。

        参数:
        atts - 现有的Attributes对象。
    • Method Details

      • getLength

        public int getLength()
        返回列表中属性的数量。
        指定者:
        getLength 在接口 Attributes
        返回:
        列表中属性的数量。
        参见:
      • getURI

        public String getURI(int index)
        返回属性的命名空间URI。
        指定者:
        getURI 在接口 Attributes
        参数:
        index - 属性的索引(从零开始)。
        返回:
        命名空间URI,如果没有可用的则为空字符串,如果索引超出范围则为null。
        参见:
      • getLocalName

        public String getLocalName(int index)
        返回属性的本地名称。
        指定者:
        getLocalName 在接口 Attributes
        参数:
        index - 属性的索引(从零开始)。
        返回:
        属性的本地名称,如果没有可用的则为空字符串,如果索引超出范围则为null。
        参见:
      • getQName

        public String getQName(int index)
        返回属性的限定(带前缀)名称。
        指定者:
        getQName 在接口 Attributes
        参数:
        index - 属性的索引(从零开始)。
        返回:
        属性的限定名称,如果没有可用的则为空字符串,如果索引超出范围则为null。
        参见:
      • getType

        public String getType(int index)
        返回属性的类型通过索引。
        指定者:
        getType 在接口 Attributes
        参数:
        index - 属性的索引(从零开始)。
        返回:
        属性的类型,如果类型未知则为"CDATA",如果索引超出范围则为null。
        参见:
      • getValue

        public String getValue(int index)
        返回属性的值通过索引。
        指定者:
        getValue 在接口 Attributes
        参数:
        index - 属性的索引(从零开始)。
        返回:
        属性的值,如果索引超出范围则为null。
        参见:
      • getIndex

        public int getIndex(String uri, String localName)
        通过命名空间名称查找属性的索引。

        在许多情况下,查找一次名称并使用索引查询方法会更有效,而不是重复使用名称查询方法。

        指定者:
        getIndex 在接口 Attributes
        参数:
        uri - 属性的命名空间URI,如果没有可用则为空字符串。
        localName - 属性的本地名称。
        返回:
        属性的索引,如果没有匹配则为-1。
        参见:
      • getIndex

        public int getIndex(String qName)
        通过限定(带前缀)名称查找属性的索引。
        指定者:
        getIndex 在接口 Attributes
        参数:
        qName - 限定名称。
        返回:
        属性的索引,如果没有匹配则为-1。
        参见:
      • getType

        public String getType(String uri, String localName)
        通过命名空间限定名称查找属性的类型。
        指定者:
        getType 在接口 Attributes
        参数:
        uri - 命名空间URI,或对于没有显式命名空间URI的名称为空字符串。
        localName - 本地名称。
        返回:
        属性的类型,如果没有匹配的属性则为null。
        参见:
      • getType

        public String getType(String qName)
        通过限定(带前缀)名称查找属性的类型。
        指定者:
        getType 在接口 Attributes
        参数:
        qName - 限定名称。
        返回:
        属性的类型,如果没有匹配的属性则为null。
        参见:
      • getValue

        public String getValue(String uri, String localName)
        通过命名空间限定名称查找属性的值。
        指定者:
        getValue 在接口 Attributes
        参数:
        uri - 命名空间URI,或空字符串表示没有显式命名空间URI的名称。
        localName - 本地名称。
        返回:
        属性的值,如果没有匹配的属性则返回null。
        参见:
      • getValue

        public String getValue(String qName)
        通过限定(带前缀)名称查找属性的值。
        指定者:
        getValue 在接口 Attributes
        参数:
        qName - 限定名称。
        返回:
        属性的值,如果没有匹配的属性则返回null。
        参见:
      • clear

        public void clear()
        清除属性列表以便重用。

        请注意,此调用几乎不会释放内存:当前数组会被保留以便重用。

      • setAttributes

        public void setAttributes(Attributes atts)
        复制整个Attributes对象。

        重复使用现有对象可能比不断分配新对象更有效率。

        参数:
        atts - 要复制的属性。
      • addAttribute

        public void addAttribute(String uri, String localName, String qName, String type, String value)
        将属性添加到列表末尾。

        出于速度考虑,此方法不会检查属性是否已在列表中:这是应用程序的责任。

        参数:
        uri - 命名空间URI,如果没有可用的或不执行命名空间处理则为空字符串。
        localName - 本地名称,如果不执行命名空间处理则为空字符串。
        qName - 限定(带前缀)名称,如果不可用则为空字符串。
        type - 属性类型作为字符串。
        value - 属性值。
      • setAttribute

        public void setAttribute(int index, String uri, String localName, String qName, String type, String value)
        在列表中设置属性。

        出于速度考虑,此方法不会检查名称冲突或格式是否正确:这些检查是应用程序的责任。

        参数:
        index - 属性的索引(从零开始)。
        uri - 命名空间URI,如果没有可用的或不执行命名空间处理则为空字符串。
        localName - 本地名称,如果不执行命名空间处理则为空字符串。
        qName - 限定名称,如果不可用则为空字符串。
        type - 属性类型作为字符串。
        value - 属性值。
        抛出:
        ArrayIndexOutOfBoundsException - 当提供的索引不指向列表中的属性时。
      • removeAttribute

        public void removeAttribute(int index)
        从列表中删除属性。
        参数:
        index - 属性的索引(从零开始)。
        抛出:
        ArrayIndexOutOfBoundsException - 当提供的索引不指向列表中的属性时。
      • setURI

        public void setURI(int index, String uri)
        设置特定属性的命名空间URI。
        参数:
        index - 属性的索引(从零开始)。
        uri - 属性的命名空间URI,如果没有则为空字符串。
        抛出:
        ArrayIndexOutOfBoundsException - 当提供的索引不指向列表中的属性时。
      • setLocalName

        public void setLocalName(int index, String localName)
        设置特定属性的本地名称。
        参数:
        index - 属性的索引(从零开始)。
        localName - 属性的本地名称,如果没有则为空字符串。
        抛出:
        ArrayIndexOutOfBoundsException - 当提供的索引不指向列表中的属性时。
      • setQName

        public void setQName(int index, String qName)
        设置特定属性的限定名称。
        参数:
        index - 属性的索引(从零开始)。
        qName - 属性的限定名称,如果没有则为空字符串。
        抛出:
        ArrayIndexOutOfBoundsException - 当提供的索引不指向列表中的属性时。
      • setType

        public void setType(int index, String type)
        设置特定属性的类型。
        参数:
        index - 属性的索引(从零开始)。
        type - 属性的类型。
        抛出:
        ArrayIndexOutOfBoundsException - 当提供的索引不指向列表中的属性时。
      • setValue

        public void setValue(int index, String value)
        设置特定属性的值。
        参数:
        index - 属性的索引(从零开始)。
        value - 属性的值。
        抛出:
        ArrayIndexOutOfBoundsException - 当提供的索引不指向列表中的属性时。