- 所有已知的实现类:
-
AttributeListImpl
这是用于报告元素属性的原始SAX1接口。与新的Attributes
接口不同,它不支持与命名空间相关的信息。
当属性列表作为startElement
事件的一部分提供时,该列表仅在事件范围内返回有效结果;一旦事件处理程序将控制返回给解析器,属性列表就无效了。要保存属性列表的持久副本,请使用SAX1的AttributeListImpl
辅助类。
属性列表仅包括已指定或默认的属性:未包括#IMPLIED属性。
SAX应用程序从AttributeList获取信息有两种方式。首先,可以遍历整个列表:
public void startElement (String name, AttributeList atts) {
for (int i = 0; i < atts.getLength(); i++) {
String name = atts.getName(i);
String type = atts.getType(i);
String value = atts.getValue(i);
[...]
}
}
(请注意,如果没有属性,则getLength()的结果将为零。)
作为替代,应用程序可以请求特定属性的值或类型:
public void startElement (String name, AttributeList atts) { String identifier = atts.getValue("id"); String label = atts.getValue("label"); [...] }
- 自版本:
- 1.4, SAX 1.0
- 参见:
-
Method Details
-
getLength
int getLength()Deprecated.返回此列表中属性的数量。SAX解析器可以以任意顺序提供属性,而不管它们声明或指定的顺序。属性的数量可能为零。
- 返回:
- 列表中属性的数量。
-
getName
Deprecated.返回此列表中属性的名称(按位置)。名称必须是唯一的:SAX解析器不得两次包含相同的属性。没有值的属性(在开始标记中声明为#IMPLIED但未指定值的属性)将从列表中省略。
如果属性名称在文档中具有命名空间前缀,则前缀仍将附加。
- 参数:
-
i
- 列表中属性的索引(从0开始)。 - 返回:
- 索引属性的名称,如果索引超出范围,则返回null。
- 参见:
-
getType
Deprecated.返回此列表中属性的类型(按位置)。属性类型是字符串“CDATA”、“ID”、“IDREF”、“IDREFS”、“NMTOKEN”、“NMTOKENS”、“ENTITY”、“ENTITIES”或“NOTATION”(始终大写)之一。
如果解析器尚未读取属性的声明,或者解析器不报告属性类型,则必须返回值“CDATA”,如XML 1.0推荐(第3.3.3节,“属性值规范化”)中所述。
对于不是符号的枚举属性,解析器将报告类型为“NMTOKEN”。
- 参数:
-
i
- 列表中属性的索引(从0开始)。 - 返回:
- 属性类型作为字符串,如果索引超出范围,则返回null。
- 参见:
-
getValue
Deprecated.返回此列表中属性的值(按位置)。如果属性值是标记列表(IDREFS、ENTITIES或NMTOKENS),则将这些标记连接成一个由空格分隔的单个字符串。
- 参数:
-
i
- 列表中属性的索引(从0开始)。 - 返回:
- 属性值作为字符串,如果索引超出范围,则返回null。
- 参见:
-
getType
Deprecated.返回此列表中属性的类型(按名称)。返回值与getType(int)的返回值相同。
如果属性名称在文档中具有命名空间前缀,则应用程序必须在此处包含前缀。
- 参数:
-
name
- 属性的名称。 - 返回:
- 属性类型作为字符串,如果不存在此类属性,则返回null。
- 参见:
-
getValue
Deprecated.返回此列表中属性的值(按名称)。返回值与getValue(int)的返回值相同。
如果属性名称在文档中具有命名空间前缀,则应用程序必须在此处包含前缀。
- 参数:
-
name
- 要返回的属性的名称 - 返回:
- 属性值作为字符串,如果不存在此类属性,则返回null。
- 参见:
-
Attributes
interface, which includes Namespace support.