|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface Node
該 Node
介面是整個文檔物件模型的主要資料型別。它表示該文檔階層樹中的單個節點。當實作 Node
介面的所有物件公開處理子節點的方法時,不是實作 Node
介面的所有物件都有子節點。例如,Text
節點可能沒有子節點,且將子節點添加到這樣的節點將導致引發 DOMException
。
包括屬性 nodeName
、nodeValue
和 attributes
作為一種獲取節點資訊的機制,無需向下強制轉換為特定的派生介面。在沒有對特定的 nodeType
(如 Element
的 nodeValue
或 Comment
的 attributes
)的屬性的明顯映射的情況下,這將返回 null
。注意,特定的介面可能包含其他更方便的機制來獲取和設置相關資訊。
nodeName
、nodeValue
和 attributes
的值將根據以下節點型別的不同而不同。
Interface | nodeName | nodeValue | attributes |
---|---|---|---|
Attr |
與 Attr.name 相同 |
與 Attr.value 相同 |
null |
CDATASection |
"#cdata-section" |
與 CharacterData.data 相同,CDATA 節的內容 |
null |
Comment |
"#comment" |
與 CharacterData.data 相同,該註釋的內容 |
null |
Document |
"#document" |
null |
null |
DocumentFragment |
"#document-fragment" |
null |
null |
DocumentType |
與 DocumentType.name 相同 |
null |
null |
Element |
與 Element.tagName 相同 |
null |
NamedNodeMap |
Entity |
entity name | null |
null |
EntityReference |
參考的實體名稱 |
null |
null |
Notation |
notation name |
null |
null |
ProcessingInstruction |
與 ProcessingInstruction.target 相同 |
與 ProcessingInstruction.data 相同 |
null |
Text |
"#text" |
與 CharacterData.data 相同,該文本節點的內容 |
null |
另請參見 Document Object Model (DOM) Level 3 Core Specification。
欄位摘要 | |
---|---|
static short |
ATTRIBUTE_NODE
該節點為 Attr 。 |
static short |
CDATA_SECTION_NODE
該節點為 CDATASection 。 |
static short |
COMMENT_NODE
該節點為 Comment 。 |
static short |
DOCUMENT_FRAGMENT_NODE
該節點為 DocumentFragment 。 |
static short |
DOCUMENT_NODE
該節點為 Document 。 |
static short |
DOCUMENT_POSITION_CONTAINED_BY
參考節點包含該節點。 |
static short |
DOCUMENT_POSITION_CONTAINS
該節點包含參考節點。 |
static short |
DOCUMENT_POSITION_DISCONNECTED
兩個節點斷開連接。 |
static short |
DOCUMENT_POSITION_FOLLOWING
該節點在參考節點之後。 |
static short |
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
對前後位置的確定是特定於實作的。 |
static short |
DOCUMENT_POSITION_PRECEDING
第二個節點在參考節點之前。 |
static short |
DOCUMENT_TYPE_NODE
該節點為 DocumentType 。 |
static short |
ELEMENT_NODE
該節點為 Element 。 |
static short |
ENTITY_NODE
該節點為 Entity 。 |
static short |
ENTITY_REFERENCE_NODE
該節點為 EntityReference 。 |
static short |
NOTATION_NODE
該節點為 Notation 。 |
static short |
PROCESSING_INSTRUCTION_NODE
該節點為 ProcessingInstruction 。 |
static short |
TEXT_NODE
該節點為 Text 節點。 |
方法摘要 | |
---|---|
Node |
appendChild(Node newChild)
將節點 newChild 添加到此節點的子節點列表的末尾。 |
Node |
cloneNode(boolean deep)
返回此節點的副本,即允當節點的一般複製建構子。 |
short |
compareDocumentPosition(Node other)
就節點在文檔中的位置並按照文檔的順序,比較參考節點(即在其上調用此方法的節點)與作為參數傳遞的節點。 |
NamedNodeMap |
getAttributes()
包含此節點的屬性的 NamedNodeMap (如果它是 Element );否則為 null 。 |
String |
getBaseURI()
此節點的絕對基 URI;如果實作不能獲得絕對 URI,則為 null 。 |
NodeList |
getChildNodes()
包含此節點的所有子節點的 NodeList 。 |
Object |
getFeature(String feature,
String version)
此方法返回一個特定的物件,該物件實作指定功能或版本的特定 API,如下所述。 |
Node |
getFirstChild()
此節點的第一個子節點。 |
Node |
getLastChild()
此節點的最後一個節點。 |
String |
getLocalName()
返回此節點限定名稱的本地部分。 |
String |
getNamespaceURI()
此節點的名稱空間 URI;如果它未被指定,則返回 null (參見)。 |
Node |
getNextSibling()
直接在此節點之後的節點。 |
String |
getNodeName()
此節點的名稱,取決於其型別;參見上表。 |
short |
getNodeType()
表示基礎物件的型別的節點,如上所述。 |
String |
getNodeValue()
此節點的值,取決於其型別;參見上表。 |
Document |
getOwnerDocument()
與此節點相關的 Document 物件。 |
Node |
getParentNode()
此節點的父節點。 |
String |
getPrefix()
此節點的名稱空間前綴;如果它未被指定,則為 null 。 |
Node |
getPreviousSibling()
直接在此節點之前的節點。 |
String |
getTextContent()
此屬性返回此節點及其後代的文本內容。 |
Object |
getUserData(String key)
檢索與此節點上的某個鍵相關聯的物件。 |
boolean |
hasAttributes()
返回此節點(如果它是一個元素)是否具有任何屬性。 |
boolean |
hasChildNodes()
返回此節點是否具有任何子節點。 |
Node |
insertBefore(Node newChild,
Node refChild)
在現有子節點 refChild 之前插入節點 newChild 。 |
boolean |
isDefaultNamespace(String namespaceURI)
此方法檢查指定的 namespaceURI 是否是預設名稱空間。 |
boolean |
isEqualNode(Node arg)
測試兩個節點是否相等。 |
boolean |
isSameNode(Node other)
返回此節點是否是與給定節點相同的節點。 |
boolean |
isSupported(String feature,
String version)
測試 DOM 實作是否實作特定功能,且該功能是否受此節點支持,如下所述。 |
String |
lookupNamespaceURI(String prefix)
從此節點開始,尋找與給定前綴相關的名稱空間 URI。 |
String |
lookupPrefix(String namespaceURI)
從此節點開始,尋找與給定名稱空間 URI 相關的前綴。 |
void |
normalize()
將此 Node 之下完整的深層子階層樹中所有 Text 節點(包括屬性節點)放入只有結構(如元素、註釋、處理指令、CDATA 節和實體參考)分隔 Text 節點的“常規”形式,也就是說,既沒有相鄰的 Text 節點,也沒有空 Text 節點。 |
Node |
removeChild(Node oldChild)
從子節點列表中移除 oldChild 所指示的子節點,並將其返回。 |
Node |
replaceChild(Node newChild,
Node oldChild)
將子節點列表中的子節點 oldChild 替換為 newChild ,並返回 oldChild 節點。 |
void |
setNodeValue(String nodeValue)
此節點的值,取決於其型別;參見上表。 |
void |
setPrefix(String prefix)
此節點的名稱空間前綴;如果未指定,則為 null 。 |
void |
setTextContent(String textContent)
此屬性返回此節點及其後代的文本內容。 |
Object |
setUserData(String key,
Object data,
UserDataHandler handler)
將對象與此節點上的鍵相關聯。 |
欄位詳細資訊 |
---|
static final short ELEMENT_NODE
Element
。
static final short ATTRIBUTE_NODE
Attr
。
static final short TEXT_NODE
Text
節點。
static final short CDATA_SECTION_NODE
CDATASection
。
static final short ENTITY_REFERENCE_NODE
EntityReference
。
static final short ENTITY_NODE
Entity
。
static final short PROCESSING_INSTRUCTION_NODE
ProcessingInstruction
。
static final short COMMENT_NODE
Comment
。
static final short DOCUMENT_NODE
Document
。
static final short DOCUMENT_TYPE_NODE
DocumentType
。
static final short DOCUMENT_FRAGMENT_NODE
DocumentFragment
。
static final short NOTATION_NODE
Notation
。
static final short DOCUMENT_POSITION_DISCONNECTED
static final short DOCUMENT_POSITION_PRECEDING
static final short DOCUMENT_POSITION_FOLLOWING
static final short DOCUMENT_POSITION_CONTAINS
static final short DOCUMENT_POSITION_CONTAINED_BY
static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
方法詳細資訊 |
---|
String getNodeName()
String getNodeValue() throws DOMException
null
時,設置它無效,包括節點為只讀的情況。
DOMException
- DOMSTRING_SIZE_ERR: 在它返回的字元多於實作平臺上 DOMString
變數中適合的字元時引發此異常。void setNodeValue(String nodeValue) throws DOMException
null
時,設置它無效,包括節點為只讀的情況。
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 當節點為只讀且未將它定義為 null
時引發此異常。short getNodeType()
Node getParentNode()
Attr
、Document
、DocumentFragment
、Entity
和 Notation
)都可以有父節點。但是,如果剛創建節點且尚未添加到階層樹,或如果已經從階層樹中移除了它,此值為 null
。
NodeList getChildNodes()
NodeList
。如果不存在子節點,則這是不包含節點的 NodeList
。
Node getFirstChild()
null
。
Node getLastChild()
null
。
Node getPreviousSibling()
null
。
Node getNextSibling()
null
。
NamedNodeMap getAttributes()
NamedNodeMap
(如果它是 Element
);否則為 null
。
Document getOwnerDocument()
Document
物件。這也是用於創建新節點的 Document
物件。當此節點為 Document
或未與任何 Document
一起使用的 DocumentType
時,返回 null
。
Node insertBefore(Node newChild, Node refChild) throws DOMException
refChild
之前插入節點 newChild
。如果 refChild
為 null
,則將 newChild
插入到子節點列表的末尾。newChild
為 DocumentFragment
物件,則以同樣的順序將其所有節點插入 refChild
之前。如果 newChild
已經存在於階層樹中,則首先移除它。
註:將一個節點插入本身之前與實作有關。
newChild
- 要插入的節點。refChild
- 參考節點,即必須在其前插入新節點的節點。
DOMException
- HIERARCHY_REQUEST_ERR:在以下情況下引發此異常:如果此節點為不允許 newChild
節點型別的子節點的型別;或者如果要插入的節點為此節點的一個祖先或此節點本身;或者如果此節點為 Document
型別且 DOM 應用程序試圖插入第二個 DocumentType
或 Element
節點。 newChild
是從不同的文檔創建的,不是從創建此節點的文檔創建的,則引發此異常。 refChild
不是此節點的子節點。Document
型別,如果 DOM 實作不支持插入 DocumentType
或 Element
節點,則可能引發此異常。Node replaceChild(Node newChild, Node oldChild) throws DOMException
oldChild
替換為 newChild
,並返回 oldChild
節點。newChild
為 DocumentFragment
物件,則將 oldChild
替換為所有 DocumentFragment
子節點,它們都以相同的順序插入。如果 newChild
已經存在於階層樹中,則首先移除它。
註:將節點替換為它本身與實作有關。
newChild
- 要在子節點列表中放入的新節點。oldChild
- 列表中被替換的節點。
DOMException
- HIERARCHY_REQUEST_ERR: 在以下情況下引發此異常:如果此節點為不允許 newChild
節點型別的子節點的型別;或者如果要放入的節點為此節點的一個祖先或此節點本身;或者如果此節點為 Document
型別且替換操作的結果將第二個 DocumentType
或 Element
添加到 Document
上。 newChild
是從不同的文檔創建的,不是從創建此節點的文檔創建的,則引發此異常。 oldChild
不是此節點的子節點,則引發此異常。Document
型別,則如果 DOM 實作不支持替換 DocumentType
子節點或 Element
子節點,則可能引發此異常。Node removeChild(Node oldChild) throws DOMException
oldChild
所指示的子節點,並將其返回。
oldChild
- 移除的節點。
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 如果此節點為只讀的,則引發此異常。oldChild
不是此節點的子節點。Document
型別,則如果 DOM 實作不支持移除 DocumentType
子節點或 Element
子節點,則可能引發此異常。Node appendChild(Node newChild) throws DOMException
newChild
添加到此節點的子節點列表的末尾。如果 newChild
已經存在於階層樹中,則首先移除它。
newChild
- 要添加的節點。如果它是 DocumentFragment
物件,則將文檔片段的整個內容移動到此節點的子列表中
DOMException
- HIERARCHY_REQUEST_ERR: 在以下情況下引發此異常:如果此節點為不允許 newChild
節點型別的子節點的型別;或者如果要追加的節點為此節點的一個祖先或此節點本身;或者如果此節點為 Document
型別且 DOM 應用程序試圖追加第二個 DocumentType
或 Element
節點。newChild
是從不同的文檔創建的,不是從創建此節點的文檔創建的,則引發此異常。 newChild
節點為 Document
節點的子節點,則如果 DOM 實作不支持移除 DocumentType
子節點或 Element
子節點,則可能引發此異常。boolean hasChildNodes()
true
;否則返回 false
。Node cloneNode(boolean deep)
parentNode
為 null
),且沒有使用者資料。與導入的節點相關的使用者資料不攜帶過來。但是,如果隨相關資料一起指定了任何 UserDataHandlers
,則將在此方法返回之前用適當的參數調用這些處理程序。Element
將複製所有屬性及其值,包括由 XML 處理器產生的用來表示預設屬性的那些屬性和值,但此方法不複製它包含的任何子節點,除非它是一個深層複製。這包括此 Element
所包含的文本,因為該文本包含在子 Text
節點中。直接複製 Attr
(相對於作為 Element
複製操作的一部分進行的複製)將返回指定的屬性(specified
為 true
)。複製一個 Attr
總是要複製其子節點,因為它們表示其值,不管這是否是深層複製。如果相應的 Entity
可用,則複製 EntityReference
將自動建構其子階層樹,不管這是否是深層複製。複製任何其他型別的節點只返回此節點的副本。EntityReference
複製的子節點應為只讀的。此外,還要指定未指定的 Attr
節點的複製。並且,複製 Document
、DocumentType
、Entity
和 Notation
節點與實作有關。
deep
- 如果為 true
,則在指定節點下遞歸式複製子階層樹;如果為 false
,則僅複製節點本身(及其屬性,如果它是 Element
)。
void normalize()
Node
之下完整的深層子階層樹中所有 Text
節點(包括屬性節點)放入只有結構(如元素、註釋、處理指令、CDATA 節和實體參考)分隔 Text
節點的“常規”形式,也就是說,既沒有相鄰的 Text
節點,也沒有空 Text
節點。這可以用於確保一個文檔的 DOM 視圖相同,好像它是保存和重新載入的一樣,並且在使用依賴特定文檔階層樹結構的操作(如 XPointer [XPointer] 查詢)時此方法非常有用。如果連接到 Node.ownerDocument
的 DOMConfiguration
物件的參數 "normalize-characters" 為 true
,則此方法還將完全標準化 Text
節點的字元。
註:在文檔包含 CDATASections
的情況下,單獨的標準化操作可能不充分,因為 XPointer 不區分 Text
節點和 CDATASection
節點。
boolean isSupported(String feature, String version)
feature
- 要測試的功能的名稱。version
- 這是要測試的功能的版本號。
true
;否則,返回 false
。String getNamespaceURI()
null
(參見)。ELEMENT_NODE
和 ATTRIBUTE_NODE
之外的任何型別的節點以及使用 DOM Level 1 方法創建的節點,如 Document.createElement()
,這始終為 null
。
註:根據 Namespaces in XML 規範 [XML Namespaces],屬性不從它連接到的元素繼承其名稱空間。如果未顯式給定一個屬性名稱空間,則它只是沒有名稱空間。
String getPrefix()
null
。當將它定義為 null
時,設置它無效,包括節點為只讀的情況。nodeName
屬性,它將在可用時保存限定名稱,以及 Element
和 Attr
介面的 tagName
和 name
屬性。null
會使它不被指定,將它設置為空字元串與實作有關。namespaceURI
和 localName
沒有發生變化。ELEMENT_NODE
和 ATTRIBUTE_NODE
之外的任何型別的節點以及使用 DOM Level 1 方法創建的節點,如 Document
介面中的 createElement
,這始終為 null
。
void setPrefix(String prefix) throws DOMException
null
。當將它定義為 null
時,設置它無效,包括節點為只讀的情況。nodeName
屬性,它將在可用時保存限定名稱,以及 Element
和 Attr
介面的 tagName
和 name
屬性。null
會使它不被指定,將它設置為空字元串與實作有關。namespaceURI
和 localName
不發生變化。ELEMENT_NODE
和 ATTRIBUTE_NODE
之外的任何型別的節點以及使用 DOM Level 1 方法創建的節點,如 Document
介面中的 createElement
,這始終為 null
。
DOMException
- INVALID_CHARACTER_ERR: 根據在 Document.xmlVersion
屬性中指定的正在使用的 XML 版本,如果指定的前綴包含非法字元,則引發此異常。prefix
格式錯誤;如果此節點的 namespaceURI
為 null
;如果指定的前綴為 "xml" 且此節點的 namespaceURI
不同於 "http://www.w3.org/XML/1998/namespace";如果此節點為屬性,指定前綴為 "xmlns" 且此節點的 namespaceURI
不同於 "http://www.w3.org/2000/xmlns/";或者如果此節點為屬性且此節點的 qualifiedName
為 "xmlns" [XML Namespaces]。String getLocalName()
ELEMENT_NODE
和 ATTRIBUTE_NODE
之外的任何型別的節點以及使用 DOM Level 1 方法創建的節點,如 Document.createElement()
,這始終為 null
。
boolean hasAttributes()
true
;否則返回 false
。String getBaseURI()
null
。此值如描述的那樣計算。但是,當 Document
支持功能 "HTML" [DOM Level 2 HTML] 時,首先使用 HTML BASE 元素(如果有)的 href 屬性的值計算基 URI;否則,使用 Document
介面中的 documentURI
屬性的值計算。
short compareDocumentPosition(Node other) throws DOMException
other
- 與參考節點比較的節點。
DOMException
- NOT_SUPPORTED_ERR: 當被比較的節點來自不同的 DOM 實作,未調整該 DOM 實作以返回一致的特定於實作的結果時。String getTextContent() throws DOMException
null
時,設置它無效。設置後,移除此節點可能有的任何可能的子節點,並且如果新字元串不為空或 null
,則用包含此屬性設置的字元串的單個 Text
節點替換。Text.isElementContentWhitespace
)。類似地,設置後,也不執行解析,且以純文本內容形式採用輸入字元串。節點型別 | 內容 |
---|---|
ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE | 串接每個子節點的 textContent 屬性值,不包括 COMMENT_NODE 和 PROCESSING_INSTRUCTION_NODE 節點。如果該節點沒有子節點,則這是空字元串。 |
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE | nodeValue |
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE | null |
DOMException
- DOMSTRING_SIZE_ERR:在它返回的字元多於實作平臺上 DOMString
變數中適合的字元時引發此異常。void setTextContent(String textContent) throws DOMException
null
時,設置它無效。設置後,移除此節點可能有的任何可能的子節點,並且,如果新字元串不為空或 null
,則用包含此屬性設置的字元串的單個 Text
節點替換。Text.isElementContentWhitespace
)。類似地,設置後,也不執行解析,且以純文本內容形式採用輸入字元串。節點型別 | 內容 |
---|---|
ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE | 串接每個子節點的 textContent 屬性值,不包括 COMMENT_NODE 和 PROCESSING_INSTRUCTION_NODE 節點。如果該節點沒有子節點,則這是空字元串。 |
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE | nodeValue |
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE | null |
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 節點為只讀的時引發此異常。boolean isSameNode(Node other)
Node
參考是否參考同一個物件。當兩個 Node
參考參考同一個物件時,即使是通過代理,也可能完全可交換地使用這些參考,例如所有屬性都有相同的值且在任何參考上調用同一個 DOM 方法總是起完全相同的作用。
other
- 要測試的節點。
true
;否則,返回 false
。String lookupPrefix(String namespaceURI)
namespaceURI
- 要尋找的名稱空間 URI。
null
。如果一個以上的前綴與名稱空間前綴相關,則返回的名稱空間前綴與實作有關。boolean isDefaultNamespace(String namespaceURI)
namespaceURI
是否是預設名稱空間。
namespaceURI
- 要尋找的名稱空間 URI。
namespaceURI
為預設名稱空間,則返回 true
;否則,返回 false
。String lookupNamespaceURI(String prefix)
prefix
- 要尋找的前綴。如果此參數為 null
,則此方法將返回預設的名稱空間 URI(如果有)。
null
。boolean isEqualNode(Node arg)
Node.isSameNode()
測試。所有相同的節點也將相等,儘管反之則不然。nodeName
、localName
、namespaceURI
、prefix
、nodeValue
。也就是說:它們都為 null
,或者它們具有相同的長度且是字元相等的字元。
attributes
NamedNodeMaps
相等。也就是說:它們都為 null
,或者它們具有相同的長度,且對於一個映射中存在的每個節點來說,相應在另一個映射中有一個節點並且相等,儘管不是必須在同一個索引處。
childNodes
NodeLists
相等。也就是說:它們都為 null
,或者它們具有相同的長度且在同一索引處包含相等的節點。注意,規範化可以影響相等性;要避免這種情況,應該在比較之前標準化這些節點。
DocumentType
節點要是相等,還必須滿足以下條件:
publicId
、systemId
、internalSubset
。
entities
NamedNodeMaps
相等。
notations
NamedNodeMaps
相等。
ownerDocument
、baseURI
和 parentNode
屬性;Attr
節點的 specified
屬性;Attr
和 Element
節點的 schemaTypeInfo
屬性;Text
節點的 Text.isElementContentWhitespace
屬性;以及在節點上註冊的任何使用者資料和事件偵聽器。
註:通常,在相等性檢查的考慮中,上面描述中未提到的任何情況都是無關緊要的。注意,此規範的未來版本可能考慮更多屬性,並且期望遵守此規範的實作進行相應的更新。
arg
- 與其比較相等性的節點。
true
;否則,返回 false
。Object getFeature(String feature, String version)
Node
介面的特殊物件。
feature
- 所請求的功能的名稱。注意,追加到功能名稱的任何加號 "+" 將被忽略,因為它在此方法的上下文中無關緊要。version
- 這是要測試的功能版本號。
null
。如果此方法返回的 DOMObject
實作 Node
介面,則它必須委託給主要核心 Node
且不返回與主要核心 Node
不一致的結果,如屬性、子節點,等等。Object setUserData(String key, Object data, UserDataHandler handler)
getUserData
從此節點檢索到。
key
- 將該物件與其關聯的鍵。data
- 與給定鍵相關聯的物件;為 null
時表示移除與任何現有的與該鍵的關聯。handler
- 與該鍵關聯的處理程序,或 null
。
DOMUserData
;如果沒有,則返回 null
。Object getUserData(String key)
setUserData
將該物件設置到此節點。
key
- 該物件所關聯的鍵。
DOMUserData
;如果沒有,則返回 null
。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。