org.w3c.dom

接口
异常
所有超级接口:
CharacterData, Node
所有已知子接口:
CDATASection, Text

public interface Text
     
extends CharacterData

Text 接口继承自 CharacterData,并且表示 ElementAttr 的文本内容(在 XML 中称为字符数据)。如果元素的内容中没有标记,则文本包含在实现 Text 接口的单个对象中,此接口是该元素的唯一子元素。如果有标记,则将它解析为信息项(元素、注释,等等)和组成该元素的子元素列表的 Text 节点。

首先通过 DOM 使文档可用时,文本的每个块只有一个 Text 节点。用户可以创建表示给定元素的内容的相邻的 Text 节点,没有任何插入标记,但应该知道无法在 XML 或 HTML 中表示这些节点之间的分隔,因此它们(通常)不会保持在 DOM 编辑会话之间。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
将当前节点和所有逻辑上相邻的文本节点的文本替换为指定的文本。移除包括当前节点在内的所有逻辑上相邻的文本节点,除非它是替换文本的接收方。

此方法返回接收替换文本的节点。返回的节点为:

  • null,此时替换文本为空字符串;
  • 当前节点,当前节点为只读的时除外;
  • 与在替换位置插入的当前节点类型相同(TextCDATASection)的新 Text 节点。

例如,在上面的示例中,在参数中有 "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