Attributes
接口所取代,其中包括命名空间支持。
public interface AttributeList
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.
这是用于报告元素属性的原始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");
[...]
}
startElement
, AttributeListImpl
Modifier and Type | Method and Description |
---|---|
int |
getLength()
已弃用
返回此列表中的属性数。
|
String |
getName(int i)
已弃用
返回此列表中的属性名称(按位置)。
|
String |
getType(int i)
已弃用
返回列表中的属性类型(按位置)。
|
String |
getType(String name)
已弃用
返回列表中的属性类型(按名称)。
|
String |
getValue(int i)
已弃用
返回列表中的属性值(按位置)。
|
String |
getValue(String name)
已弃用
返回列表中的属性值(按名称)。
|
int getLength()
SAX解析器可以以任意的顺序提供属性,而不管它们被声明或指定的顺序。 属性的数量可以为零。
String getName(int i)
名称必须是唯一的:SAX解析器不得包含相同的属性两次。 没有值的属性(在起始标记中没有指定值的那些声明为#IMPLIED的)将从列表中省略。
如果属性名称具有命名空间前缀,则仍将附加前缀。
i
- 列表中属性的索引(从0开始)。
getLength()
String getType(int i)
属性类型是字符串“CDATA”,“ID”,“IDREF”,“IDREFS”,“NMTOKEN”,“NMTOKENS”,“ENTITY”,“ENTITIES”或“符号”(总是大写) 。
如果解析器没有读取该属性的声明,或者解析器不报告属性类型,那么它必须返回值为“CDATA”,如XML 1.0重新规定(第3.3.3节“属性值归一化” )。
对于不是符号的枚举属性,解析器将将类型报告为“NMTOKEN”。
i
- 列表中属性的索引(从0开始)。
getLength()
,
getType(java.lang.String)
String getValue(int i)
如果属性值是令牌列表(IDREFS,ENTITIES或NMTOKENS),令牌将被连接成一个由空格分隔的单个字符串。
i
- 列表中属性的索引(从0开始)。
getLength()
,
getValue(java.lang.String)
String getType(String name)
返回值与getType(int)的返回值相同。
如果属性名称在文档中具有命名空间前缀,则应用程序必须在此处包含前缀。
name
- 属性的名称。
getType(int)
String getValue(String name)
返回值与getValue(int)的返回值相同。
如果属性名称在文档中具有命名空间前缀,则应用程序必须在此处包含前缀。
name
- 要返回的属性的名称
getValue(int)