|
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。