JavaTM 2 Platform
Standard Ed. 6

org.w3c.dom
介面 Document

所有父級介面:
Node
所有已知實作類別:
SOAPPart

public interface Document
extends Node

Document 介面表示整個 HTML 或 XML 文檔。從概念上講,它是文檔階層樹的根,並提供對文檔資料的基本存取。

因為元素、文本節點、註釋、處理指令等不能存在於 Document 的上下文之外,所以 Document 介面還包含所需的創建這些物件的處理器方法。所創建的 Node 物件具有 ownerDocument 屬性,該屬性將 Node 物件與創建這些物件時的上下文所屬的 Document 關聯起來。

另請參見 Document Object Model (DOM) Level 3 Core Specification


欄位摘要
 
從介面 org.w3c.dom.Node 繼承的欄位
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
方法摘要
 Node adoptNode(Node source)
          試圖把另一文檔中的節點採用到此文檔。
 Attr createAttribute(String name)
          創建給定名稱的 Attr
 Attr createAttributeNS(String namespaceURI, String qualifiedName)
          創建給定的限定名稱和名稱空間 URI 的屬性。
 CDATASection createCDATASection(String data)
          創建其值為指定字元串的 CDATASection 節點。
 Comment createComment(String data)
          創建給定指定字元串的 Comment 節點。
 DocumentFragment createDocumentFragment()
          創建空 DocumentFragment 物件。
 Element createElement(String tagName)
          創建指定型別的元素。
 Element createElementNS(String namespaceURI, String qualifiedName)
          創建給定的限定名稱和名稱空間 URI 的元素。
 EntityReference createEntityReference(String name)
          創建 EntityReference 物件。
 ProcessingInstruction createProcessingInstruction(String target, String data)
          創建給定指定名稱和資料字元串的 ProcessingInstruction 節點。
 Text createTextNode(String data)
          創建給定指定字元串的 Text 節點。
 DocumentType getDoctype()
          與此文檔相關的文檔型別宣告(參見 DocumentType)。
 Element getDocumentElement()
          這是一種便捷屬性,該屬性允許直接存取文檔的文檔元素的子節點。
 String getDocumentURI()
          文檔的位置,如果未定義或 Document 是使用 DOMImplementation.createDocument 創建的,則為 null
 DOMConfiguration getDomConfig()
          調用 Document.normalizeDocument() 時使用的配置。
 Element getElementById(String elementId)
          返回具有帶給定值的 ID 屬性的 Element
 NodeList getElementsByTagName(String tagname)
          按文檔順序返回包含在文檔中且具有給定標記名稱的所有 ElementNodeList
 NodeList getElementsByTagNameNS(String namespaceURI, String localName)
          以文檔順序返回具有給定本地名稱和名稱空間 URI 的所有 ElementsNodeList
 DOMImplementation getImplementation()
          處理此文檔的 DOMImplementation 物件。
 String getInputEncoding()
          指定解析時此文檔使用的編碼的屬性。
 boolean getStrictErrorChecking()
          指定是否強制執行錯誤檢查的屬性。
 String getXmlEncoding()
          作為 XML 宣告的一部分,指定此文檔編碼的屬性。
 boolean getXmlStandalone()
          作為 XML 宣告的一部分,指定此文檔是否為獨立文檔的屬性。
 String getXmlVersion()
          作為 XML 宣告 的一部分指定此文檔版本號的屬性。
 Node importNode(Node importedNode, boolean deep)
          從另一文檔向此文檔導入節點,而不改變或移除原始文檔中的源節點;此方法創建源節點的一個新副本。
 void normalizeDocument()
          此方法的行為如同使文檔通過一個保存和載入的過程,而將其置為 "normal(標準)" 形式。
 Node renameNode(Node n, String namespaceURI, String qualifiedName)
          重命名 ELEMENT_NODEATTRIBUTE_NODE 型別的現有節點。
 void setDocumentURI(String documentURI)
          文檔的位置,如果未定義或 Document 是使用 DOMImplementation.createDocument 創建的,則為 null
 void setStrictErrorChecking(boolean strictErrorChecking)
          指定是否強制執行錯誤檢查的屬性。
 void setXmlStandalone(boolean xmlStandalone)
          作為 XML 宣告 的一部分指定此文檔是否是單獨的的屬性。
 void setXmlVersion(String xmlVersion)
          作為 XML 宣告 的一部分指定此文檔版本號的屬性。
 
從介面 org.w3c.dom.Node 繼承的方法
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 

方法詳細資訊

getDoctype

DocumentType getDoctype()
與此文檔相關的文檔型別宣告(參見 DocumentType)。對於沒有文檔型別宣告的 XML 文檔,此方法返回 null。對於 HTML 文檔,可以返回 DocumentType 物件,與 HTML 文檔中是否有文檔型別宣告無關。
這提供對 Document 的子節點 DocumentType 節點的直接存取。此節點可以在文檔創建時設置,以後可以通過使用子節點操作方法(如 Node.insertBeforeNode.replaceChild)進行更改。不過要注意的是,根據創建時指定的 DocumentType,在有些實作可以實例化不同型別的 Document 物件(支持 "Core" 之外的其他功能,如 "HTML" [DOM Level 2 HTML])時,以後對它的更改很可能會導致所支持功能的不可更改。

從以下版本開始:
DOM Level 3

getImplementation

DOMImplementation getImplementation()
處理此文檔的 DOMImplementation 物件。DOM 應用程序可以使用多個實作中的物件。


getDocumentElement

Element getDocumentElement()
這是一種便捷屬性,該屬性允許直接存取文檔的文檔元素的子節點。


createElement

Element createElement(String tagName)
                      throws DOMException
創建指定型別的元素。注意,返回的實例實作 Element 介面,所以可以直接在返回的物件上指定屬性。
此外,如果存在具有預設值的已知屬性,則自動創建表示它們的 Attr 節點,並將其連接到該元素。
要創建具有限定名稱和名稱空間 URI 的元素,使用 createElementNS 方法。

參數:
tagName - 要實例化的元素型別名稱。對於 XML,tagName 參數是區分大小寫的;而對於其他文檔,則取決於所使用標記語言的大小寫敏感性。在該情況下,可通過 DOM 實作將該名稱映射到該標記的規範形式。
返回:
新的 Element 物件,該物件具有設置為 tagNamenodeName 屬性以及設置為 nulllocalNameprefixnamespaceURI
拋出:
DOMException - INVALID_CHARACTER_ERR:如果指定的名稱是不遵循所使用的 XML 版本(在 Document.xmlVersion 屬性中指定)的 XML 名稱,則引發此異常。

createDocumentFragment

DocumentFragment createDocumentFragment()
創建空 DocumentFragment 物件。

返回:
新的 DocumentFragment

createTextNode

Text createTextNode(String data)
創建給定指定字元串的 Text 節點。

參數:
data - 該節點的資料。
返回:
Text 物件。

createComment

Comment createComment(String data)
創建給定指定字元串的 Comment 節點。

參數:
data - 該節點的資料。
返回:
Comment 物件。

createCDATASection

CDATASection createCDATASection(String data)
                                throws DOMException
創建其值為指定字元串的 CDATASection 節點。

參數:
data - CDATASection 內容的資料。
返回:
CDATASection 物件。
拋出:
DOMException - NOT_SUPPORTED_ERR:如果此文檔為 HTML 文檔,則引發該異常。

createProcessingInstruction

ProcessingInstruction createProcessingInstruction(String target,
                                                  String data)
                                                  throws DOMException
創建給定指定名稱和資料字元串的 ProcessingInstruction 節點。

參數:
target - 處理指令的目標部分。與 Document.createElementNSDocument.createAttributeNS 不同,此方法不檢查目標名稱是否為格式良好的名稱空間。為了確保目標名稱是格式良好的名稱空間,應用程序應該使用設置為 true 的參數 "namespaces" 調用 Document.normalizeDocument()
data - 該節點的資料。
返回:
ProcessingInstruction 物件。
拋出:
DOMException - INVALID_CHARACTER_ERR:如果指定的目標是不遵循在 Document.xmlVersion 屬性中指定的使用中的 XML 版本的 XML 名稱,則引發此異常。
NOT_SUPPORTED_ERR:如果此文檔為 HTML 文檔,則引發此異常。

createAttribute

Attr createAttribute(String name)
                     throws DOMException
創建給定名稱的 Attr。注意,然後可以使用 setAttributeNode 方法在 Element 上設置 Attr
要創建具有限定名稱和名稱空間 URI 的屬性,使用 createAttributeNS 方法。

參數:
name - 屬性名稱。
返回:
新的 Attr 物件,該物件具有設置為 namenodeName 屬性以及設置為 nulllocalNameprefixnamespaceURI。該屬性的值為空字元串。
拋出:
DOMException - INVALID_CHARACTER_ERR:如果指定的名稱是不遵循在 Document.xmlVersion 屬性中指定的使用中的 XML 版本的 XML 名稱,則引發此異常。

createEntityReference

EntityReference createEntityReference(String name)
                                      throws DOMException
創建 EntityReference 物件。此外,如果參考的實體是已知的,則使 EntityReference 節點的子列表與相應 Entity 節點的子列表相同。

註: 如果任何 Entity 節點的後代具有未綁定的名稱空間前綴,則相應的所創建的 EntityReference 節點的後代也未綁定;(其 namespaceURInull)。DOM Level 2 和 3 不支持在此情況下解析名稱空間前綴的任何機制。

參數:
name - 要參考的實體的名稱。與 Document.createElementNSDocument.createAttributeNS 不同,不在實體名稱上檢查名稱空間是否為格式良好的。為了確保實體名稱是格式良好的名稱空間,應用程序應該使用設置為 true 的參數 "namespaces" 調用 Document.normalizeDocument()
返回:
新的 EntityReference 物件。
拋出:
DOMException - INVALID_CHARACTER_ERR:如果指定的名稱是不遵循在 Document.xmlVersion 屬性中指定的使用中的 XML 版本的 XML 名稱,則引發此異常。
NOT_SUPPORTED_ERR:如果此文檔為 HTML 文檔,則引發該異常。

getElementsByTagName

NodeList getElementsByTagName(String tagname)
按文檔順序返回包含在文檔中且具有給定標記名稱的所有 ElementNodeList

參數:
tagname - 要比對的標記的名稱。特殊值 "*" 比對所有標記。對於 XML ,tagname 參數是區分大小寫的,否則它將依靠正在使用的標記語言的大小寫敏感性。
返回:
包含所有比對的 Elements 的新 NodeList 物件。

importNode

Node importNode(Node importedNode,
                boolean deep)
                throws DOMException
從另一文檔向此文檔導入節點,而不改變或移除原始文檔中的源節點;此方法創建源節點的一個新副本。返回的節點沒有父節點;(parentNodenull)。
對於所有節點而言,導入節點創建由導入文檔所有的節點物件,屬性值等同於源節點的 nodeNamenodeType,加上與名稱空間相關的屬性(prefixlocalNamenamespaceURI)。與在 cloneNode 操作中一樣,源節點沒有改變。與導入的節點相關的使用者資料不可繼續使用。不過,如果隨相關資料一起指定了任何 UserDataHandlers,則將在此方法返回之前用適當的參數調用這些處理程序。
其他資訊按相應的 nodeType 複製,在從一個文檔向另一文檔複製 XML 或 HTML 源的分段時試圖鏡像所需的行為,並認識到兩個方法可以在 XML 實例中具有不同的 DTD。下表描述了每種型別節點的細節。
ATTRIBUTE_NODE
在產生的 Attr 上,將 ownerElement 屬性設置為 null 並將 specified 標誌設置為 true。遞歸地導入源 Attr 的後代,並且重新集合得到的節點來建構相應的子階層樹。注意,deep 參數對 Attr 節點無效;它們總是在導入時帶著子節點。
DOCUMENT_FRAGMENT_NODE
如果將 deep 選項設置為 true,則遞歸地導入源 DocumentFragment 的後代,並在導入的 DocumentFragment 下重新集合得到的節點以建構相應的子階層樹。否則,此操作僅產生一個空 DocumentFragment
DOCUMENT_NODE
不能導入 Document 節點。
DOCUMENT_TYPE_NODE
不能導入 DocumentType 節點。
ELEMENT_NODE
導入源元素的指定的 屬性節點,並將產生的 Attr 節點連接到產生的 Element。預設屬性是 被複製的,不過,如果被導入的文檔定義了此元素名稱的預設屬性,則分派這些屬性。如果將 importNode deep 參數設置為 true,則遞歸地導入源元素的後代並集合得到的節點,以建構相應的子階層樹。
ENTITY_NODE
可以導入 Entity 節點,但在當前版本的 DOM 中,DocumentType 是只讀的。將考慮在以後版本的 DOM 中包含將這些導入的節點添加到 DocumentType 中這一功能。導入時,將複製 publicIdsystemIdnotationName 屬性。如果請求 deep 導入,則遞歸地導入源 Entity 的後代,並重新集合得到的節點以建構相應的子階層樹。
ENTITY_REFERENCE_NODE
即使請求 deep 導入,也只複製 EntityReference 本身,因為源和目標文檔可能以不同方式定義實體。如果正在導入的文檔提供對此實體名稱的定義,則它的值得以分派。
NOTATION_NODE
可以導入 Notation 節點,但在當前版本的 DOM 中,DocumentType 是只讀的。能夠將這些導入的節點添加到 DocumentType 將被認為是以後版本的 DOM 的附加功能。導入時,複製 publicIdsystemId 屬性。注意,deep 參數對此型別的節點無效,因為它們不能有任何子節點。
PROCESSING_INSTRUCTION_NODE
導入的節點從源節點中複製其 targetdata 值。注意,該 deep 參數對此型別的節點無效,因為它們不能有任何子節點。
TEXT_NODE、CDATA_SECTION_NODE、COMMENT_NODE
繼承自 CharacterData 的這三種型別的節點從源節點複製其 datalength 屬性。注意,deep 參數對這三種型別的節點無效,因為它們不能有任何子節點。

參數:
importedNode - 要導入的節點。
deep - 如果為 true,則遞歸地導入在指定節點下的子階層樹;如果為 false,則僅導入節點本身,如上面的解釋。這對不能有任何子節點的節點、對 AttrEntityReference 節點都無效。
返回:
導入的、屬於此 Document 的節點。
拋出:
DOMException - NOT_SUPPORTED_ERR:如果不支持正在導入的該型別的節點,則引發此異常。
INVALID_CHARACTER_ERR:如果導入的一個名稱是不遵循在 Document.xmlVersion 屬性中指定的使用中的 XML 版本的 XML 名稱,則引發此異常。例如,將 XML 1.1 [XML 1.1] 元素導入 XML 1.0 文檔時可能引發此異常。
從以下版本開始:
DOM Level 2

createElementNS

Element createElementNS(String namespaceURI,
                        String qualifiedName)
                        throws DOMException
創建給定的限定名稱和名稱空間 URI 的元素。
依據 [XML Namespaces],如果應用程序不希望使用名稱空間,則必須將 null 作為方法的 namespaceURI 參數的值。

參數:
namespaceURI - 要創建的元素的名稱空間 URI。
qualifiedName - 要實例化的元素型別的限定名稱。
返回:
具有以下屬性的新 Element 物件:
屬性
Node.nodeName qualifiedName
Node.namespaceURI namespaceURI
Node.prefix 前綴,從 qualifiedName 中提取的;如果沒有前綴,則為 null
Node.localName 本地名稱,從 qualifiedName 提取的
Element.tagName qualifiedName
拋出:
DOMException - INVALID_CHARACTER_ERR:如果指定的 qualifiedName 是不遵循在 Document.xmlVersion 屬性中指定的使用中的 XML 版本的 XML 名稱,則引發此異常。
NAMESPACE_ERR:下列情況引發此異常:如果 qualifiedName 是錯誤格式的限制名稱;如果 qualifiedName 具有前綴且 namespaceURInull;或者如果 qualifiedName 具有前綴 "xml" 且該 namespaceURI 不同於 "http://www.w3.org/XML/1998/namespace" [XML Namespaces];或者如果 qualifiedName 或其前綴為 "xmlns" 且該 namespaceURI 不同於 "http://www.w3.org/2000/xmlns/";或者如果 namespaceURI 為 "http://www.w3.org/2000/xmlns/" 且 qualifiedName 及其前綴都不是 "xmlns"。
NOT_SUPPORTED_ERR:由於 XML 定義了名稱空間,如果當前文檔不支持 "XML" 特性,則總是拋出此異常。
從以下版本開始:
DOM Level 2

createAttributeNS

Attr createAttributeNS(String namespaceURI,
                       String qualifiedName)
                       throws DOMException
創建給定的限定名稱和名稱空間 URI 的屬性。
對於每個 [XML Namespaces],如果應用程序希望沒有名稱空間,則它們必須將 null 作為方法的 namespaceURI 參數的值。

參數:
namespaceURI - 要創建的屬性的名稱空間 URI。
qualifiedName - 要實例化的屬性的限定名稱。
返回:
具有以下屬性的新 Attr 物件:
屬性
Node.nodeName qualifiedName
Node.namespaceURI namespaceURI
Node.prefix 前綴,從 qualifiedName 中提取的;如果沒有前綴,則為 null
Node.localName 本地名稱,從 qualifiedName 提取的
Attr.name qualifiedName
Node.nodeValue 空字元串
拋出:
DOMException - INVALID_CHARACTER_ERR:如果指定的 qualifiedName 是不遵循在 Document.xmlVersion 屬性中指定的使用中的 XML 版本的 XML 名稱,則引發此異常。
NAMESPACE_ERR:在以下情況下引發此異常:如果 qualifiedName 為錯誤格式的限定名稱;如果 qualifiedName 有前綴且 namespaceURInull;如果 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"。
NOT_SUPPORTED_ERR:由於 XML 定義了名稱空間,如果當前文檔不支持 "XML" 特性,則總是拋出此異常。
從以下版本開始:
DOM Level 2

getElementsByTagNameNS

NodeList getElementsByTagNameNS(String namespaceURI,
                                String localName)
以文檔順序返回具有給定本地名稱和名稱空間 URI 的所有 ElementsNodeList

參數:
namespaceURI - 要比對的元素的名稱空間 URI。特殊值 "*" 比對所有名稱空間。
localName - 要比對的元素的本地名稱。特殊值 "*" 比對所有本地名稱。
返回:
包含所有比對的 Elements 的新 NodeList 物件。
從以下版本開始:
DOM Level 2

getElementById

Element getElementById(String elementId)
返回具有帶給定值的 ID 屬性的 Element。如果不存在此類別元素,則此方法返回 null。如果一個以上的元素具有帶該值的 ID 屬性,返回哪一個元素是不確定的。
期望 DOM 實作使用屬性 Attr.isId 來確定屬性是否屬於型別 ID。

註: 具有名稱 "ID" 或 "id" 的屬性不屬於型別 ID,除非這樣定義。

參數:
elementId - 元素的唯一 id 值。
返回:
比對的元素;如果不存在任何比對元素,則返回 null
從以下版本開始:
DOM Level 2

getInputEncoding

String getInputEncoding()
指定解析時此文檔使用的編碼的屬性。如果此屬性未知(如在記憶體中創建 Document 時),則為 null

從以下版本開始:
DOM Level 3

getXmlEncoding

String getXmlEncoding()
作為 XML 宣告的一部分,指定此文檔編碼的屬性。在未指定或未知時,如在記憶體中創建 Document 時,此屬性為 null

從以下版本開始:
DOM Level 3

getXmlStandalone

boolean getXmlStandalone()
作為 XML 宣告的一部分,指定此文檔是否為獨立文檔的屬性。未指定時,此屬性為 false

註: 設置此屬性時不對此值進行任何驗證。應用程序應該使用帶有 "validate" 參數的 Document.normalizeDocument() 驗證該值是否比對在 [XML 1.0] 中定義的有關獨立文檔宣告的有效性約束()。

從以下版本開始:
DOM Level 3

setXmlStandalone

void setXmlStandalone(boolean xmlStandalone)
                      throws DOMException
作為 XML 宣告 的一部分指定此文檔是否是單獨的的屬性。未指定時,此屬性為 false

註: 設置此屬性時不對此值進行任何驗證。應用程序應該使用帶有 "validate" 參數的 Document.normalizeDocument() 驗證該值是否比對 validity constraint for standalone document declaration(在 [XML 1.0] 中定義)。

拋出:
DOMException - NOT_SUPPORTED_ERR:如果此文檔不支持 "XML" 特性,則引發此異常。
從以下版本開始:
DOM Level 3

getXmlVersion

String getXmlVersion()
作為 XML 宣告 的一部分指定此文檔版本號的屬性。如果沒有宣告,或如果此文檔支持 "XML" 特性,則該值為 "1.0"。如果此文檔不支持 "XML" 特性,則該值始終為 null。更改此屬性將影響在 XML 名稱中檢查無效字元的方法。應用程序應該調用 Document.normalizeDocument() 來檢查在已經是此 Document 一部分的 Node 中的無效字元。
DOM 應用程序可以使用參數值分別為 "XMLVersion" 和 "1.0"的 DOMImplementation.hasFeature(feature, version) 方法來確定實作是否支持 [XML 1.0]。DOM 應用程序還可以使用參數值分別為 "XMLVersion" 和 "1.1"的同一方法來確定實作是否支持 [XML 1.1]。在這兩種情況下,為了支持 XML,實作還必須支持在此規範中定義的 "XML" 特性。支持某版本的 "XMLVersion" 特性的 Document 物件不能在使用 Document.xmlVersion 時對相同版本號引發 NOT_SUPPORTED_ERR 異常。

從以下版本開始:
DOM Level 3

setXmlVersion

void setXmlVersion(String xmlVersion)
                   throws DOMException
作為 XML 宣告 的一部分指定此文檔版本號的屬性。如果沒有宣告,或如果此文檔支持 "XML" 特性,則該值為 "1.0"。如果此文檔不支持 "XML" 特性,則該值始終為 null。更改此屬性將影響在 XML 名稱中檢查無效字元的方法。應用程序應該調用 Document.normalizeDocument() 來檢查在已經是此 Document 一部分的 Node 中的無效字元。
DOM 應用程序可以使用參數值分別為 "XMLVersion" 和 "1.0"的 DOMImplementation.hasFeature(feature, version) 方法來確定實作是否支持 [XML 1.0]。DOM 應用程序還可以使用參數值分別為 "XMLVersion" 和 "1.1"的同一方法來確定實作是否支持 [XML 1.1]。在這兩種情況下,為了支持 XML,實作還必須支持在此規範中定義的 "XML" 特性。支持某版本的 "XMLVersion" 特性的 Document 物件不能在使用 Document.xmlVersion 時對相同版本號引發 NOT_SUPPORTED_ERR 異常。

拋出:
DOMException - NOT_SUPPORTED_ERR:如果將該版本設置為此 Document 不支持的值,或此文檔不支持 "XML" 特性,則引發此異常。
從以下版本開始:
DOM Level 3

getStrictErrorChecking

boolean getStrictErrorChecking()
指定是否強制執行錯誤檢查的屬性。設置為 false 時,該實作可以不測試通常在 DOM 操作上定義的每個可能的錯誤情形,可以不在 DOM 操作上引發任何 DOMException,也可以不在使用 Document.normalizeDocument() 時報告錯誤。如果發生錯誤,則該行為將會不確定。此屬性預設為 true

從以下版本開始:
DOM Level 3

setStrictErrorChecking

void setStrictErrorChecking(boolean strictErrorChecking)
指定是否強制執行錯誤檢查的屬性。設置為 false 時,該實作不會隨意測試通常在 DOM 操作上定義的每個可能的錯誤情形,不會在 DOM 操作上引發任何 DOMException,也不會在使用 Document.normalizeDocument() 時報告錯誤。如果發生錯誤,則該行為不確定。此屬性預設為 true

從以下版本開始:
DOM Level 3

getDocumentURI

String getDocumentURI()
文檔的位置,如果未定義或 Document 是使用 DOMImplementation.createDocument 創建的,則為 null。設置此屬性時不執行任何詞彙檢查;這可能導致在使用 Node.baseURI 時返回 null 值。
請注意,如果 Document 支持 "HTML" [DOM Level 2 HTML] 特性,則計算 Node.baseURI 時 HTML BASE 元素的 href 屬性優先於此屬性。

從以下版本開始:
DOM Level 3

setDocumentURI

void setDocumentURI(String documentURI)
文檔的位置,如果未定義或 Document 是使用 DOMImplementation.createDocument 創建的,則為 null。設置此屬性時不執行任何詞彙檢查;這可能導致在使用 Node.baseURI 時返回 null 值。
請注意,如果 Document 支持 "HTML" [DOM Level 2 HTML] 特性,則計算 Node.baseURI 時 HTML BASE 元素的 href 屬性優先於此屬性。

從以下版本開始:
DOM Level 3

adoptNode

Node adoptNode(Node source)
               throws DOMException
試圖把另一文檔中的節點採用到此文檔。如果受支持,則它將更改源節點的 ownerDocument、它的子節點以及連接的屬性節點(如果有)。如果源節點有父節點,則首先從其父節點的子節點列表中移除它。此方法允許將子階層樹從一個文檔移動到另一個文檔(與 importNode() 不同,後者創建源節點副本,而不是移動子階層樹)。失敗時,應用程序應該改為使用 Document.importNode()。注意,如果採用的節點已經是此文檔的一部分(即源文檔和目標文檔相同),此方法仍可有效地從其父節點(如果有)的子列表移除源節點。下表描述了每種型別節點的細節。
ATTRIBUTE_NODE
在採用的 Attr 上,將 ownerElement 屬性設置為 null 並將 specified 標誌設置為 true。遞歸地採用源 Attr 的後代。
DOCUMENT_FRAGMENT_NODE
遞歸地採用源節點的後代。
DOCUMENT_NODE
不能採用 Document 節點。
DOCUMENT_TYPE_NODE
不能採用 DocumentType 節點。
ELEMENT_NODE
採用源元素的 Specified 屬性節點。丟棄預設屬性,不過,如果被採用的文檔定義了此元素名稱的預設屬性,則分派這些屬性。遞歸地採用源元素的後代。
ENTITY_NODE
不能採用 Entity 節點。
ENTITY_REFERENCE_NODE
只採用 EntityReference 節點本身並丟棄其後代,因為源文檔和目標文檔可能以不同方式定義實體。如果要導入的文檔提供了對此實體名稱的定義,則分派其值。
NOTATION_NODE
不能採用 Notation 節點。
PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
這些節點均可以採用。無特殊說明。

註: 由於它與 Document.importNode() 方法不同,不創建新的節點,因此此方法不引發 INVALID_CHARACTER_ERR 異常,並且應用程序應該使用 Document.normalizeDocument() 方法來檢查導入的名稱是否是遵循正在使用的 XML 版本的 XML 名稱。

參數:
source - 要移入此文檔的節點。
返回:
採用的節點,如果此操作失敗(例如源節點來自不同實作時),則返回 null
拋出:
DOMException - NOT_SUPPORTED_ERR:如果源節點屬於 DOCUMENTDOCUMENT_TYPE 型別,則引發此異常。
NO_MODIFICATION_ALLOWED_ERR:源節點為只讀的時引發此異常。
從以下版本開始:
DOM Level 3

getDomConfig

DOMConfiguration getDomConfig()
調用 Document.normalizeDocument() 時使用的配置。

從以下版本開始:
DOM Level 3

normalizeDocument

void normalizeDocument()
此方法的行為如同使文檔通過一個保存和載入的過程,而將其置為 "normal(標準)" 形式。因此,此方法更新 EntityReference 節點的替換階層樹並規範化 Text 節點,如在方法 Node.normalize() 中定義的那樣。
否則,實際結果取決於在 Document.domConfig 物件上設置的、控制哪個操作實際發生的特性。值得注意的是,此方法還可以按照其中描述的演算法使文檔名稱空間格式良好、檢查字元規範化、移除 CDATASection 節點,等等。有關詳細資訊請參見 DOMConfiguration
// Keep in the document 
 the information defined // in the XML Information Set (Java example) 
 DOMConfiguration docConfig = myDocument.getDomConfig(); 
 docConfig.setParameter("infoset", Boolean.TRUE); 
 myDocument.normalizeDocument();

產生改變事件(當被支持時)來反映在該文檔上發生的更改。
如果在調用此方法期間發生錯誤(如試圖更新只讀節點)或按照正在使用的 XML 版本 Node.nodeName 套件含無效字元,則將使用與 "error-handler" 參數相關聯的 DOMErrorHandler 物件報告錯誤或警告(DOMError.SEVERITY_ERRORDOMError.SEVERITY_WARNING)。注意,如果實作無法從錯誤中恢復,則此方法還可能報告嚴重錯誤(DOMError.SEVERITY_FATAL_ERROR)。

從以下版本開始:
DOM Level 3

renameNode

Node renameNode(Node n,
                String namespaceURI,
                String qualifiedName)
                throws DOMException
重命名 ELEMENT_NODEATTRIBUTE_NODE 型別的現有節點。
如有可能,此方法只更改給定節點的名稱;否則此方法將創建一個具有指定名稱的新節點,並將現有節點替換為新節點,如下所述。
如果只更改給定節點的名稱是不可能的,則執行以下操作:創建新節點;在新節點上註冊任何已註冊的事件偵聽器;從舊節點移除連接到該節點的任何使用者資料;從舊節點的父節點(如果有)將其移除;將子節點移到新節點;如果重命名的節點為 Element,則其屬性移動到新節點;將新節點插入舊節點原來在其父(如果有)的子節點列表中的位置;將連接到舊節點的使用者資料連接到新節點。
當正被重命名的節點為 Element 時,只移動指定的屬性,源於 DTD 的預設屬性按照新的元素名稱更新。此外,實作還可以更新源自其他網要的預設屬性。應用程序應該使用 Document.normalizeDocument() 來保證這些屬性是最新的。
當正被重命名的節點是連接到 ElementAttr 時,則首先從 Element 屬性映射中移除該節點。然後,一旦通過修改現有節點或創建新節點(如上所述)重命名,則將它放回原處。
此外,

參數:
n - 要重命名的節點。
namespaceURI - 新的名稱空間 URI。
qualifiedName - 新的限定名稱。
返回:
重命名的節點。這可以是指定的節點,也可以是用來替換指定節點而創建的新節點。
拋出:
DOMException - NOT_SUPPORTED_ERR:當指定節點的型別不是 ELEMENT_NODE,也不是 ATTRIBUTE_NODE 時,或者如果實作不支持重命名文檔元素,則引發此異常。
INVALID_CHARACTER_ERR:如果新的限定名稱不是遵循正在使用的在 Document.xmlVersion 屬性中指定的 XML 版本的 XML 名稱,則引發此異常。
WRONG_DOCUMENT_ERR:當從與此文檔不同的另一個文檔創建指定節點時,引發此異常。
NAMESPACE_ERR:在以下情況下引發此異常:如果 qualifiedName 為錯誤格式的限定名稱;如果 qualifiedName 有前綴且 namespaceURInull;或者如果 qualifiedName 有前綴 "xml" 且 namespaceURI 不同於 "http://www.w3.org/XML/1998/namespace" [XML Namespaces]。當正被重命名的節點為一屬性時,如果 qualifiedName 或其前綴為 "xmlns" 且 namespaceURI 不同於 "http://www.w3.org/2000/xmlns/",也引發此異常。
從以下版本開始:
DOM Level 3

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only