Интерфейс Text
- Все суперинтерфейсы:
CharacterData, Node
- Все известные подинтерфейсы:
CDATASection
public interface Text extends CharacterData
Text наследует CharacterData и представляет текстовое содержимое (называемое символьными данными в XML) элемента Element или Attr. Если внутри содержимого элемента нет разметки, текст содержится в одном объекте, реализующем интерфейс Text, который является единственным дочерним узлом элемента. Если разметка есть, она разбирается на информационные элементы (элементы, комментарии и т. д.) и узлы Text, образующие список дочерних узлов элемента. Когда документ впервые становится доступен через DOM, для каждого блока текста имеется только один узел Text. Пользователи могут создавать смежные узлы Text, представляющие содержимое заданного элемента без промежуточной разметки, однако следует учитывать, что в XML или HTML невозможно представить разделение между этими узлами, поэтому (как правило) оно не сохраняется между сеансами редактирования DOM. Метод Node.normalize() объединяет любые такие смежные объекты Text в один узел для каждого блока текста.
Для содержимого узла Text не выполняется лексическая проверка, и в зависимости от его положения в документе некоторые символы при сериализации необходимо экранировать с помощью символьных ссылок; например, символы "<&" в случае, если текстовое содержимое является частью элемента или атрибута, последовательность символов "]]>" в случае, если она является частью элемента, а также символ кавычки " или символ апострофа ' в случае, если он является частью атрибута.
См. также спецификацию Document Object Model (DOM) Level 3 Core.
- Начиная с:
- 1.4, DOM Level 2
Краткое описание полей
Поля, объявленные в интерфейсе 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 |
Заменяет текст текущего узла и всех логически смежных текстовых узлов указанным текстом. |
Text |
splitText |
Разделяет этот узел на два узла в указанной позиции offset, оставляя оба узла в дереве в качестве соседних. |
Методы, объявленные в интерфейсе CharacterData
appendData, deleteData, getData, getLength, insertData, replaceData, setData, substringData
Методы, объявленные в интерфейсе 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— смещение в 16-разрядных единицах, в котором выполняется разделение, начиная с0. - Возвращает:
- Новый узел того же типа, что и этот узел.
- Вызывает исключение:
-
DOMException— INDEX_SIZE_ERR: возникает, если указанное смещение отрицательно или превышает количество 16-разрядных единиц вdata.
NO_MODIFICATION_ALLOWED_ERR: возникает, если этот узел доступен только для чтения.
isElementContentWhitespace
boolean isElementContentWhitespace()
Document.normalizeDocument().- Начиная с:
- 1.5, DOM Level 3
getWholeText
String getWholeText()
Text, логически смежных с этим узлом, объединённый в порядке следования в документе. Например, в приведённом ниже примере вызов
wholeText для узла Text, содержащего "bar", возвращает "barfoo", а для узла Text, содержащего "foo", возвращает "barfoo".
+-----+
| <p> |
+-----+
/\
/ \
/-----\ +-------+
| bar | | &ent; |
\-----/ +-------+
|
|
/-----\
| foo |
\-----/
Рисунок: значение barTextNode.wholeText равно "barfoo"
- Начиная с:
- 1.5, DOM Level 3
replaceWholeText
Text replaceWholeText(String content) throws DOMException
Этот метод возвращает узел, в который был помещён заменяющий текст. Возвращаемым узлом является:
-
null, если заменяющий текст представляет собой пустую строку; - текущий узел, если только текущий узел не доступен только для чтения;
- новый узел
Textтого же типа (TextилиCDATASection), что и текущий узел, вставленный в место замены.
Например, в приведённом выше примере вызов replaceWholeText для узла Text, содержащего "bar", с аргументом "yo" приводит к следующему результату:
+-----+
| <p> |
+-----+
|
|
/-----\
| yo |
\-----/
Рисунок: barTextNode.replaceWholeText("yo") изменяет текстовое содержимое barTextNode на "yo" Если узлы, подлежащие удалению, являются доступными только для чтения потомками EntityReference, вместо узлов, доступных только для чтения, необходимо удалить EntityReference. Если у какого-либо EntityReference, подлежащего удалению, есть потомки, не являющиеся узлами EntityReference, Text или CDATASection, метод replaceWholeText должен завершиться с ошибкой до внесения каких-либо изменений в документ, вызвав DOMException с кодом NO_MODIFICATION_ALLOWED_ERR.
Например, в приведённом ниже примере вызов replaceWholeText для узла Text, содержащего "bar", завершается ошибкой, поскольку узел EntityReference "ent" содержит узел Element, который нельзя удалить.
- Параметры:
-
content— содержимое заменяющего узлаText. - Возвращает:
- Узел
Text, созданный с указанным содержимым. - Вызывает исключение:
-
DOMException— NO_MODIFICATION_ALLOWED_ERR: возникает, если один из заменяемых узловTextдоступен только для чтения. - Начиная с:
- 1.5, DOM Level 3
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/org/w3c/dom/Text.html