public interface Element
Element
接口表示 HTML 或 XML 文档中的一个元素。元素可能有与它们相关的属性;由于 Element
接口继承自 Node
,所以可以使用一般 Node
接口属性 attributes
来获得元素所有属性的集合。Element
接口上有通过名称获得 Attr
对象或通过名称获得属性值的方法。在 XML 中(其中的属性值可能包含实体引用),应该获得 Attr
对象来检查表示属性值的可能相当复杂的子树。另一方面,在 HTML 中(其中的所有属性都有简单的字符串值),可以使用直接访问属性值的方法,这既安全又便捷。
注:在 DOM Level 2 中,方法 normalize
是从转移到的 Node
接口继承的。
另请参见 Document Object Model (DOM) Level 3 Core Specification。
字段摘要 |
---|
方法摘要 | |
---|---|
String |
getAttribute(String name) 通过名称获得属性值。 |
Attr |
getAttributeNode(String name) 通过名称获得属性节点。 |
Attr |
getAttributeNodeNS(String namespaceURI, String localName) 通过本地名称和名称空间 URI 获得 Attr 节点。 |
String |
getAttributeNS(String namespaceURI, String localName) 通过本地名称和名称空间 URI 获得属性值。 |
NodeList |
getElementsByTagName(String name) 以文档顺序返回具有给定标记名称的所有后代 Elements 的 NodeList 。 |
NodeList |
getElementsByTagNameNS(String namespaceURI, String localName) 以文档顺序返回具有给定本地名称和名称空间 URI 的所有后代 Elements 的 NodeList 。 |
TypeInfo |
getSchemaTypeInfo() 与此元素相关的类型信息。 |
String |
getTagName() 元素的名称。 |
boolean |
hasAttribute(String name) 当具有给定名称的属性在此元素上被指定一个值或具有默认值时,返回 true ;否则返回 false 。 |
boolean |
hasAttributeNS(String namespaceURI, String localName) 当具有给定本地名称和名称空间 URI 的属性在此元素上被指定一个值或具有默认值时,返回 true ;否则返回 false 。 |
void |
removeAttribute(String name) 通过名称移除一个属性。 |
Attr |
removeAttributeNode(Attr oldAttr) 移除指定的属性节点。 |
void |
removeAttributeNS(String namespaceURI, String localName) 通过本地名称和名称空间 URI 移除属性值。 |
void |
setAttribute(String name, String value) 添加一个新属性。 |
Attr |
setAttributeNode(Attr newAttr) 添加新的属性节点。 |
Attr |
setAttributeNodeNS(Attr newAttr) 添加新属性。 |
void |
setAttributeNS(String namespaceURI, String qualifiedName, String value) 添加新属性。 |
void |
setIdAttribute(String name, boolean isId) 如果参数 isId 为 true ,则此方法将指定的属性声明为用于确定用户的 ID 属性。 |
void |
setIdAttributeNode(Attr idAttr, boolean isId) 如果参数 isId 为 true ,则此方法将指定的属性声明为用户确定的 ID 属性。 |
void |
setIdAttributeNS(String namespaceURI, String localName, boolean isId) 如果参数 isId 为 true ,则此方法将指定的属性声明为用户确定的 ID 属性。 |
方法详细信息 |
---|
String getTagName()
Node.localName
与
null
不同,则此属性为一个限定名称。例如,在以下示例中:
<elementExample id="demo"> ... </elementExample> ,
tagName
具有值
"elementExample"
。注意,这在 XML 中是保留大小写的,DOM 中的所有操作也是这样。HTML DOM 以规范的大写形式返回 HTML 元素的
tagName
,而不考虑源 HTML 文档中的大小写形式。
String getAttribute(String name)
name
- 要获得的属性名称。
Attr
值;如果该属性没有指定值或默认值,则返回空字符串。
void setAttribute(String name, String value) throws DOMException
Attr
节点,加上所有
Text
和
EntityReference
节点,构建适当的子树,并将它作为属性值,通过
setAttributeNode
方法来分配。
setAttributeNS
方法。
name
- 要创建或更改的属性名称。
value
- 以字符串形式设置的值。
DOMException
- INVALID_CHARACTER_ERR: 根据在
Document.xmlVersion
属性中指定的正在使用的 XML 版本,如果指定名称不是 XML 名称,则引发此异常。
void removeAttribute(String name) throws DOMException
Document.normalizeDocument()
来保证此信息最新。
removeAttributeNS
方法。
name
- 要移除的属性的名称。
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 如果此节点为只读的,则引发此异常。
Attr getAttributeNode(String name)
getAttributeNodeNS
方法。
name
- 要获得的属性名称 (
nodeName
)。
nodeName
) 的
Attr
节点;如果没有这样的属性,则返回
null
。
Attr setAttributeNode(Attr newAttr) throws DOMException
nodeName
) 的属性已经出现在元素中,则用新属性替换它。用自身替换属性节点无效。
setAttributeNodeNS
方法。
newAttr
- 要添加到属性列表的
Attr
节点。
newAttr
属性替换现有属性,则返回被替换的
Attr
节点;否则返回
null
。
DOMException
- WRONG_DOCUMENT_ERR: 如果
newAttr
是从不同的文档创建的,不是从创建该元素的文档创建的,则引发此异常。
newAttr
已经是另一个
Element
对象的属性,则引发此异常。DOM 用户必须显式地克隆
Attr
节点,以便在其他元素中重新使用它们。
Attr removeAttributeNode(Attr oldAttr) throws DOMException
Attr
节点的默认值,则新的节点将在可用时随该默认值以及相应名称空间 URI、本地名称和前缀一起立即出现。类似地,实现可以处理其他模式的默认值,但应用程序应该使用
Document.normalizeDocument()
来保证此信息最新。
oldAttr
- 从属性列表中移除的
Attr
节点。
Attr
节点。
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 如果此节点为只读的,则引发此异常。
oldAttr
不是该元素的属性,则引发此异常。
NodeList getElementsByTagName(String name)
Elements
的
NodeList
。
name
- 要匹配的标记的名称。特殊值 "*" 匹配所有标记。
Element
节点列表。
String getAttributeNS(String namespaceURI, String localName) throws DOMException
null
用作方法的
namespaceURI
参数。
namespaceURI
- 要获得的属性的名称空间 URI。
localName
- 要获得的属性的本地名称。
Attr
值;如果该属性没有指定值或默认值,则返回空字符串。
DOMException
- NOT_SUPPORTED_ERR: 如果实现不支持功能
"XML"
且文档中公开的语言不支持 XML 名称空间(例如 [
HTML 4.01]),则可能引发此异常。
void setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException
qualifiedName
的前缀部分,并将其值更改为
value
参数。此值为简单的字符串;在设置它时没有对它进行解析。因此,将任何标记(如作为实体引用识别的语法)视为字面值文本,并且需要在写出时由实现适当转义。为了分配包含实体引用的属性值,用户必须创建一个
Attr
节点,加上所有
Text
和
EntityReference
节点,构建适当的子树,并使用
setAttributeNodeNS
或
setAttributeNode
作为属性的值分配它。
null
用作方法的
namespaceURI
参数。
namespaceURI
- 要创建或更改的属性的名称空间 URI。
qualifiedName
- 要创建或更改的属性的限定名称。
value
- 以字符串形式设置的值。
DOMException
- INVALID_CHARACTER_ERR: 根据在
Document.xmlVersion
属性中指定的正在使用的 XML 版本,如果指定名称不是 XML 名称,则引发此异常。
qualifiedName
是错误格式的;如果
qualifiedName
有前缀且
namespaceURI
为
null
;如果
qualifiedName
有名为 "xml" 的前缀且
namespaceURI
不同于 "
http://www.w3.org/XML/1998/namespace";如果
qualifiedName
或其前缀为 "xmlns" 且
namespaceURI
不同于 "
http://www.w3.org/2000/xmlns/";或者如果
namespaceURI
为 "
http://www.w3.org/2000/xmlns/" 且
qualifiedName
及其前缀都不是 "xmlns"。
"XML"
且文档中公开的语言不支持 XML 名称空间(例如 [
HTML 4.01]),则可能引发此异常。
void removeAttributeNS(String namespaceURI, String localName) throws DOMException
Document.normalizeDocument()
来保证此信息最新。
null
用作方法的
namespaceURI
参数。
namespaceURI
- 要移除的属性的名称空间 URI。
localName
- 要移除的属性的本地名称。
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 如果此节点为只读的,则引发此异常。
"XML"
且文档中公开的语言不支持 XML 名称空间(例如 [
HTML 4.01]),则可能引发此异常。
Attr getAttributeNodeNS(String namespaceURI, String localName) throws DOMException
Attr
节点。
null
用作方法的
namespaceURI
参数。
namespaceURI
- 要获得的属性的名称空间 URI。
localName
- 要获得的属性的本地名称。
Attr
节点;如果没有这样的属性,则返回
null
。
DOMException
- NOT_SUPPORTED_ERR: 如果实现不支持功能
"XML"
且文档中公开的语言不支持 XML 名称空间(例如 [
HTML 4.01]),则可能引发此异常。
Attr setAttributeNodeNS(Attr newAttr) throws DOMException
null
用作方法的
namespaceURI
参数。
newAttr
- 要添加到属性列表的
Attr
节点。
newAttr
属性替换具有相同本地名称和名称空间 URI 的现有属性,则返回被替换的
Attr
节点;否则返回
null
。
DOMException
- WRONG_DOCUMENT_ERR: 如果
newAttr
是从不同的文档创建的,不是从创建该元素的文档创建的,则引发此异常。
newAttr
已经是另一个
Element
对象的属性,则引发此异常。DOM 用户必须显式地克隆
Attr
节点,以便在其他元素中重新使用它们。
"XML"
且文档中公开的语言不支持 XML 名称空间(例如 [
HTML 4.01]),则可能引发此异常。
NodeList getElementsByTagNameNS(String namespaceURI, String localName) throws DOMException
Elements
的
NodeList
。
namespaceURI
- 要匹配的元素的名称空间 URI。特殊值 "*" 匹配所有名称空间。
localName
- 要匹配的元素的本地名称。特殊值 "*" 匹配所有本地名称。
Elements
的新
NodeList
对象。
DOMException
- NOT_SUPPORTED_ERR: 如果实现不支持功能
"XML"
且文档中公开的语言不支持 XML 名称空间(例如 [
HTML 4.01]),则可能引发此异常。
boolean hasAttribute(String name)
true
;否则返回
false
。
name
- 要查找的属性名称。
true
;否则返回
false
。
boolean hasAttributeNS(String namespaceURI, String localName) throws DOMException
true
;否则返回
false
。
null
用作方法的
namespaceURI
参数。
namespaceURI
- 要查找的属性的名称空间 URI。
localName
- 要查找的属性的本地名称。
true
;否则返回
false
。
DOMException
- NOT_SUPPORTED_ERR:如果实现不支持功能
"XML"
且文档中公开的语言不支持 XML 名称空间(例如 [
HTML 4.01]),则可能引发此异常。
TypeInfo getSchemaTypeInfo()
void setIdAttribute(String name, boolean isId) throws DOMException
isId
为
true
,则此方法将指定的属性声明为用于确定用户的 ID 属性。此方法影响
Attr.isId
的值和
Document.getElementById
的行为,但不更改可能正在使用的任何模式;需要特别指出的是,此方法不影响指定
Attr
节点的
Attr.schemaTypeInfo
。使用参数
isId
的值
false
来取消将属性声明为用户确定的 ID 属性。
setIdAttributeNS
方法。
name
- 属性名称。
isId
- 属性是否是 ID 类型。
DOMException
- NO_MODIFICATION_ALLOWED_ERR:如果此节点为只读的,则引发此异常。
void setIdAttributeNS(String namespaceURI, String localName, boolean isId) throws DOMException
isId
为
true
,则此方法将指定的属性声明为用户确定的 ID 属性。此方法影响
Attr.isId
的值和
Document.getElementById
的行为,但不更改可能正在使用的任何模式;需要特别指出的是,此方法不影响指定
Attr
节点的
Attr.schemaTypeInfo
。使用参数
isId
的值
false
来取消将属性声明为用户确定的 ID 属性。
namespaceURI
- 属性的名称空间 URI。
name
- 属性的本地名称。
isId
- 属性是否是 ID 类型。
DOMException
- NO_MODIFICATION_ALLOWED_ERR:如果此节点为只读的,则引发此异常。
void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException
isId
为
true
,则此方法将指定的属性声明为用户确定的 ID 属性。此方法影响
Attr.isId
的值和
Document.getElementById
的行为,但不更改可能正在使用的任何模式;需要特别指出的是,此方法不影响指定
Attr
节点的
Attr.schemaTypeInfo
。使用参数
isId
的值
false
来取消将属性声明为用户确定的 ID 属性。
idAttr
- 属性节点。
isId
- 属性是否是 ID 类型。
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 如果此节点为只读的,则引发此异常。