Attributes
接口取代,后者包括名称空间支持。
public interface AttributeList
用于元素的属性规范的接口。
此模块(包括源代码和文档)在公共域中,同时 没有担保。有关更多信息,请参阅 http://www.saxproject.org。
这是用于报告元素的属性的原始 SAX1 接口。与新的 Attributes
接口不同,它不支持与名称空间相关的信息。
当把属性列表作为 startElement
事件的一部分提供时,该列表将返回仅在该事件范围内的有效结果;一旦事件处理程序将控制返回给解析器,则该属性列表无效。若要保存属性列表的永久性副本,请使用 SAX1 AttributeListImpl
helper 类。
属性列表只包括已经指定的或默认的属性:#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
方法摘要 | |
---|---|
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" 或 "NOTATION"(始终用大写字母)。
如果解析器尚未读取属性的声明,或者解析器没有报告属性类型,则必须返回值 "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)