- 所有已知的实现类:
AttributeListImpl
这是用于报告元素属性的原始 SAX1 接口。与新的Attributes 接口不同,它不支持Namespace相关信息。
当属性列表作为 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
- 参见:
-
方法总结
-
方法详情
-
getLength
int getLength()已弃用。返回此list中的属性数。它们声明或指定的顺序如何。属性的数量可以为零。
- 返回:
- 列表中的属性数。
-
getName
已弃用。返回此list中属性的名称(按位置)。名称必须是唯一的:SAX 解析器不应两次包含相同的属性。没有值的属性(那些声明为 #IMPLIED 而没有在开始标记中指定值的属性)将从列表中省略。
如果属性名有命名空间前缀,前缀仍然会被附加。
- 参数:
i- 列表中属性的索引(从 0 开始)。- 返回:
- 索引属性的名称,如果索引超出范围,则为 null。
- 参见:
-
getType
已弃用。返回列表中属性的类型(按位置)。属性类型是字符串“CDATA”、“ID”、“IDREF”、“IDREFS”、“NMTOKEN”、“NMTOKENS”、“ENTITY”、“ENTITIES”或“NOTATION”之一(始终为大写) .
如果解析器没有读取属性的声明,或者如果解析器没有报告属性类型,那么它必须返回值“CDATA”,如 XML 1.0 Recommentation 中所述(第 3.3.3 条,“属性值规范化” ).
对于不是表示法的枚举属性,解析器会将类型报告为“NMTOKEN”。
- 参数:
i- 列表中属性的索引(从 0 开始)。- 返回:
- 作为字符串的属性类型,如果索引超出范围则为 null。
- 参见:
-
getValue
已弃用。返回列表中属性的值(按位置)。如果属性值是标记列表(IDREFS、ENTITIES 或 NMTOKENS),标记将连接成一个由空格分隔的字符串。
- 参数:
i- 列表中属性的索引(从 0 开始)。- 返回:
- 作为字符串的属性值,如果索引超出范围,则为 null。
- 参见:
-
getType
已弃用。返回列表中属性的类型(按名称)。返回值与 getType(int) 的返回值相同。
如果属性名称在文档中有名称空间前缀,则应用程序必须在此处包含该前缀。
- 参数:
name- 属性的名称。- 返回:
- 作为字符串的属性类型,如果不存在此类属性,则为 null。
- 参见:
-
getValue
已弃用。返回列表中属性的值(按名称)。返回值与 getValue(int) 的返回值相同。
如果属性名称在文档中有名称空间前缀,则应用程序必须在此处包含该前缀。
- 参数:
name- 要返回的属性的名称- 返回:
- 作为字符串的属性值,如果不存在此类属性,则为 null。
- 参见:
-
Attributes接口取代,其中包括命名空间支持。