JavaTM 2 Platform
Standard Ed. 6

org.w3c.dom
介面 Text

所有父級介面:
CharacterData, Node
所有已知子介面:
CDATASection, Text

public interface Text
extends CharacterData

Text 介面繼承自 CharacterData,並且表示 ElementAttr 的文本內容(在 XML 中稱為字元資料)。如果元素的內容中沒有標記,則文本包含在實作 Text 介面的單個物件中,此介面是該元素的唯一子元素。如果有標記,則將它解析為資訊項(元素、註釋,等等)和組成該元素的子元素列表的 Text 節點。

首先通過 DOM 使文檔可用時,文本的每個塊只有一個 Text 節點。使用者可以創建表示給定元素的內容的相鄰的 Text 節點,沒有任何插入標記,但應該知道無法在 XML 或 HTML 中表示這些節點之間的分隔,因此它們(通常)不會保持在 DOM 編輯Session之間。Node.normalize() 方法為每個文本塊將所有這樣的相鄰 Text 物件合併為單個的節點。

不對 Text 節點的內容進行任何詞彙檢查,並且根據節點在文檔中的位置,有些字元必須在使用字元參考進行序列化期間轉義;例如,在文本內容是元素或屬性的一部分的字元 "<&";文本內容是元素一部分的字元序列 "]]>";當文本內容是屬性一部分的引號字元 " 或省略符號字元 '。

另請參見 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
 
方法摘要
 String getWholeText()
          返回 Text 節點(邏輯上與此節點相鄰的節點)的以文檔順序串接的所有文本。
 boolean isElementContentWhitespace()
          返回此文本節點是否包含 元素內容空白符,即經常所稱的“可忽略的空白符”。
 Text replaceWholeText(String content)
          將當前節點和所有邏輯上相鄰的文本節點的文本替換為指定的文本。
 Text splitText(int offset)
          在指定的 offset 處將此節點拆分為兩個節點,並將二者作為兄弟節點保持在階層樹中。
 
從介面 org.w3c.dom.CharacterData 繼承的方法
appendData, deleteData, getData, getLength, insertData, replaceData, setData, substringData
 
從介面 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
 

方法詳細資訊

splitText

Text splitText(int offset)
               throws DOMException
在指定的 offset 處將此節點拆分為兩個節點,並將二者作為兄弟節點保持在階層樹中。拆分之後,此節點將包含 offset 點之前的所有內容。返回相同型別的新節點,該節點包含 offset 點及其後面的所有內容。如果初始節點有父節點,則作為初始節點下一個兄弟節點插入新節點。當 offset 等於此節點的長度時,則新節點沒有任何資料。

參數:
offset - 從 0 開始的16 位單元偏移量,在該位置拆分。
返回:
與此節點型別相同的新節點。
拋出:
DOMException - INDEX_SIZE_ERR: 如果指定偏移量為負或大於 data 中的 16 位單元數,則引發此異常。
NO_MODIFICATION_ALLOWED_ERR: 如果此節點為只讀的,則引發此異常。

isElementContentWhitespace

boolean isElementContentWhitespace()
返回此文本節點是否包含 元素內容空白符,即經常所稱的“可忽略的空白符”。在載入文檔期間確定文本節點在元素內容中是否包含空白符,或者在使用 Document.normalizeDocument() 時是否進行驗證。

從以下版本開始:
DOM Level 3

getWholeText

String getWholeText()
返回 Text 節點(邏輯上與此節點相鄰的節點)的以文檔順序串接的所有文本。
例如,下面的範例中,wholeText 在包含 "bar" 的 Text 節點上時返回 "barfoo",而在包含 "foo" 的 Text 節點上時則返回 "barfoo"。
                     +-----+
                     | <p> |
                     +-----+
                       /\
                      /  \
               /-----\    +-------+
               | bar |    | &ent; |
               \-----/    +-------+
                              |
                              |
                           /-----\
                           | foo |
                           \-----/
 
圖:barTextNode.wholeText 的值為 "barfoo"

從以下版本開始:
DOM Level 3

replaceWholeText

Text replaceWholeText(String content)
                      throws DOMException
將當前節點和所有邏輯上相鄰的文本節點的文本替換為指定的文本。移除包括當前節點在內的所有邏輯上相鄰的文本節點,除非它是替換文本的接收方。

此方法返回接收替換文本的節點。返回的節點為:

例如,在上面的範例中,在參數中有 "yo" 的套件含 "bar" 的 Text 上調用 replaceWholeText 將導致以下情況:

                     +-----+
                     | <p> |
                     +-----+
                        |
                        |
                     /-----\
                     | yo  |
                     \-----/
 
圖:barTextNode.replaceWholeText("yo") 使用 "yo" 修改 barTextNode 的文本內容

在要移除的節點為 EntityReference 的只讀的後代時,必須移除 EntityReference,而不是移除只讀節點。如果要移除的任何 EntityReference 都有不是 EntityReferenceTextCDATASection 的後代,則在對文檔進行任何修改之前,replaceWholeText 方法一定失敗,並引發具有程式碼 NO_MODIFICATION_ALLOWED_ERRDOMException

例如,在下面的範例中,在包含 "bar" 的 Text 節點上調用 replaceWholeText 會失敗,因為 EntityReference 節點 "ent" 套件含無法移除的 Element 節點。

參數:
content - 替換 Text 節點的內容。
返回:
使用指定內容創建的 Text 節點。
拋出:
DOMException - NO_MODIFICATION_ALLOWED_ERR: 如果正在替換的某個 Text 節點為只讀的,則引發此異常。
從以下版本開始:
DOM Level 3

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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