public interface Text
该 Text
接口继承自 CharacterData
,并且表示 Element
或 Attr
的文本内容(在 XML 中称为字符数据)。如果元素的内容中没有标记,则文本包含在实现 Text
接口的单个对象中,此接口是该元素的唯一子元素。如果有标记,则将它解析为信息项(元素、注释,等等)和组成该元素的子元素列表的 Text
节点。
首先通过 DOM 使文档可用时,文本的每个块只有一个 Text
节点。用户可以创建表示给定元素的内容的相邻的 Text
节点,没有任何插入标记,但应该知道无法在 XML 或 HTML 中表示这些节点之间的分隔,因此它们(通常)不会保持在 DOM 编辑会话之间。Node.normalize()
方法为每个文本块将所有这样的相邻 Text
对象合并为单个的节点。
不对 Text
节点的内容进行任何词汇检查,并且根据节点在文档中的位置,有些字符必须在使用字符引用进行序列化期间转义;例如,在文本内容是元素或属性的一部分的字符 "<&";文本内容是元素一部分的字符序列 "]]>";当文本内容是属性一部分的引号字符 " 或省略符号字符 '。
另请参见 Document Object Model (DOM) Level 3 Core Specification。
字段摘要 |
---|
方法摘要 | |
---|---|
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 |
方法详细信息 |
---|
Text splitText(int offset) throws DOMException
offset
处将此节点拆分为两个节点,并将二者作为兄弟节点保持在树中。拆分之后,此节点将包含
offset
点之前的所有内容。返回相同类型的新节点,该节点包含
offset
点及其后面的所有内容。如果初始节点有父节点,则作为初始节点下一个兄弟节点插入新节点。当
offset
等于此节点的长度时,则新节点没有任何数据。
offset
- 从
0
开始的16 位单元偏移量,在该位置拆分。
DOMException
- INDEX_SIZE_ERR: 如果指定偏移量为负或大于
data
中的 16 位单元数,则引发此异常。
boolean isElementContentWhitespace()
Document.normalizeDocument()
时是否进行验证。
String getWholeText()
Text
节点(逻辑上与此节点相邻的节点)的以文档顺序串接的所有文本。
wholeText
在包含 "bar" 的
Text
节点上时返回 "barfoo",而在包含 "foo" 的
Text
节点上时则返回 "barfoo"。
+-----+ | <p> | +-----+ /\ / \ /-----\ +-------+ | bar | | &ent; | \-----/ +-------+ | | /-----\ | foo | \-----/图:barTextNode.wholeText 的值为 "barfoo"
Text replaceWholeText(String content) throws DOMException
此方法返回接收替换文本的节点。返回的节点为:
null
,此时替换文本为空字符串; Text
或 CDATASection
)的新 Text
节点。 例如,在上面的示例中,在参数中有 "yo" 的包含 "bar" 的 Text
上调用 replaceWholeText
将导致以下情况:
+-----+ | <p> | +-----+ | | /-----\ | yo | \-----/图:barTextNode.replaceWholeText("yo") 使用 "yo" 修改 barTextNode 的文本内容
在要移除的节点为 EntityReference
的只读的后代时,必须移除 EntityReference
,而不是移除只读节点。如果要移除的任何 EntityReference
都有不是 EntityReference
、Text
或 CDATASection
的后代,则在对文档进行任何修改之前,replaceWholeText
方法一定失败,并引发具有代码 NO_MODIFICATION_ALLOWED_ERR
的 DOMException
。
例如,在下面的示例中,在包含 "bar" 的 Text
节点上调用 replaceWholeText
会失败,因为 EntityReference
节点 "ent" 包含无法移除的 Element
节点。
content
- 替换
Text
节点的内容。
Text
节点。
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 如果正在替换的某个
Text
节点为只读的,则引发此异常。