public interface Text extends CharacterData
Text
接口从继承CharacterData
和表示文本内容(称为character data一个在XML) Element
或Attr
。
如果元素内容中没有标记,则该文本包含在实现Text接口的单个对象中,该Text
是该元素的唯一子元素。
如果有标记,则将其分解为形成元素子元素列表的信息项(元素,注释等)和Text
节点。
当文档首先通过DOM Text
,每个文本块只有一个Text
节点。 用户可以创建表示给定元素的内容的邻近的Text
节点,而不需要任何中间标记,但是应该意识到无法在XML或HTML中表示这些节点之间的分离,因此它们不会(通常)在DOM编辑会话。 Node.normalize()
方法将任何此类相邻的Text
对象合并到每个文本块的单个节点中。
没有对Text
节点的内容进行词法检查,根据文档的位置,在使用字符引用的序列化过程中必须转义一些字符; 例如字符“<&”,如果文本内容是元素或属性的一部分,字符序列“]]>”当元素的一部分,引号字符或撇号字符“当属性的一部分时。
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
Modifier and Type | Method and Description |
---|---|
String |
getWholeText()
返回
Text 节点的逻辑相邻文本节点的所有文本到此节点,以文档顺序连接。
|
boolean |
isElementContentWhitespace()
返回此文本节点是否包含
element content whitespace ,经常被称为“可忽略的空白”。
|
Text |
replaceWholeText(String content)
用指定的文本替换当前节点和所有逻辑上相邻的文本节点的文本。
|
Text |
splitText(int offset)
将此节点拆分两个节点在指定的
offset ,无论是在树中的兄弟姐妹是一致的。
|
appendData, deleteData, getData, getLength, insertData, replaceData, setData, substringData
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
Text splitText(int offset) throws DOMException
offset
两个节点,保持树中的兄弟姐妹。
分裂后,此节点将包含所有内容,直到offset
点。
返回相同类型的新节点,其中包含offset
点之后的所有内容。
如果原始节点具有父节点,则将新节点作为原始节点的下一个兄弟节点插入。
当offset
等于该节点的长度时,新节点没有数据。
offset
- 从
0
开始的16位单位偏移量。
DOMException
- INDEX_SIZE_ERR:如果指定的偏移量为负或大于data中的16位单元数,则data
。
boolean isElementContentWhitespace()
Document.normalizeDocument()
时发生Document.normalizeDocument()
。
String getWholeText()
Text
节点逻辑相邻的文本节点到此节点的所有文本,以文档顺序连接。
wholeText
的上Text
包含“栏中的”返回“barfoo”,而在节点Text
包含节点“foo”的则返回“barfoo”。
+-----+
| <p> |
+-----+
/\
/ \
/-----\ +-------+
| bar | | &ent; |
\-----/ +-------+
|
|
/-----\
| foo |
\-----/
图:barTextNode.wholeText值是“barfoo”
Text replaceWholeText(String content) throws DOMException
此方法返回接收替换文本的节点。 返回的节点是:
null
,当替换文本为空字符串时; Text
节点( Text
或CDATASection
)相同。 例如,在上面的例子中,在Text
节点上调用replaceWholeText
节点,其中包含“bar”和“yo”在参数中的结果如下:
+-----+
| <p> |
+-----+
|
|
/-----\
| yo |
\-----/
图:barTextNode.replaceWholeText(“yo”)用“yo”修改barTextNode的文本内容
要删除的节点是EntityReference的只读EntityReference
,必须删除EntityReference
而不是只读节点。 如果任何EntityReference
要去除具有不后代EntityReference
, Text
,或CDATASection
节点,所述replaceWholeText
方法必须在执行该文件的任何修改,养之前失败DOMException
与代码NO_MODIFICATION_ALLOWED_ERR
。
例如,在下面的示例中,在包含“bar”的Text
节点上调用replaceWholeText
失败,因为EntityReference
节点“ent”包含无法删除的Element
节点。
content
- 替换
Text
节点的内容。
Text
节点。
DOMException
- NO_MODIFICATION_ALLOWED_ERR:如果正在替换的
Text
节点中的一个被显示为
DOMException
,则会引发。