Spec-Zone.ru › OpenJDK 27

Интерфейс 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
Модификатор и тип Поле Описание
static final short ATTRIBUTE_NODE
Узел является Attr.
static final short CDATA_SECTION_NODE
Узел является CDATASection.
static final short COMMENT_NODE
Узел является Comment.
static final short DOCUMENT_FRAGMENT_NODE
Узел является DocumentFragment.
static final short DOCUMENT_NODE
Узел является Document.
static final short DOCUMENT_POSITION_CONTAINED_BY
Узел содержится в опорном узле.
static final short DOCUMENT_POSITION_CONTAINS
Узел содержит опорный узел.
static final short DOCUMENT_POSITION_DISCONNECTED
Два узла не связаны.
static final short DOCUMENT_POSITION_FOLLOWING
Узел следует за опорным узлом.
static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
Определение того, какой узел предшествует, а какой следует, зависит от реализации.
static final short DOCUMENT_POSITION_PRECEDING
Второй узел предшествует опорному узлу.
static final short DOCUMENT_TYPE_NODE
Узел является DocumentType.
static final short ELEMENT_NODE
Узел является Element.
static final short ENTITY_NODE
Узел является Entity.
static final short ENTITY_REFERENCE_NODE
Узел является EntityReference.
static final short NOTATION_NODE
Узел является Notation.
static final short PROCESSING_INSTRUCTION_NODE
Узел является ProcessingInstruction.
static final short TEXT_NODE
Узел является узлом Text.

Краткое описание методов

Модификатор и тип Метод Описание
String getWholeText()
Возвращает весь текст узлов Text, логически смежных с этим узлом, объединенный в порядке следования в документе.
boolean isElementContentWhitespace()
Возвращает значение, указывающее, содержит ли этот текстовый узел пробельные символы в содержимом элемента, которые часто ошибочно называют «игнорируемыми пробелами».
Text replaceWholeText(String content)
Заменяет текст текущего узла и всех логически смежных текстовых узлов указанным текстом.
Text splitText(int offset)
Разбивает этот узел на два узла в указанной позиции offset, оставляя оба узла в дереве как соседние.

Методы, объявленные в интерфейсе CharacterData

appendData, deleteData, getData, getLength, insertData, replaceData, setData, substringData
Модификатор и тип Метод Описание
void appendData(String arg)
Добавляет строку в конец символьных данных узла.
void deleteData(int offset, int count)
Удаляет из узла диапазон 16-разрядных единиц.
String getData()
Символьные данные узла, реализующего этот интерфейс.
int getLength()
Количество 16-разрядных единиц, доступных с помощью data и приведенного ниже метода substringData.
void insertData(int offset, String arg)
Вставляет строку в указанную позицию 16-разрядной единицы.
void replaceData(int offset, int count, String arg)
Заменяет символы, начиная с указанной позиции 16-разрядной единицы, указанной строкой.
void setData(String data)
Символьные данные узла, реализующего этот интерфейс.
String substringData(int offset, int count)
Извлекает диапазон данных из узла.

Методы, объявленные в интерфейсе 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
Модификатор и тип Метод Описание
Node appendChild(Node newChild)
Добавляет узел newChild в конец списка дочерних узлов этого узла.
Node cloneNode(boolean deep)
Возвращает дубликат этого узла, то есть служит универсальным конструктором копирования узлов.
short compareDocumentPosition(Node other)
Сравнивает опорный узел (то есть узел, для которого вызывается этот метод) с другим узлом (переданным в качестве параметра) по их положению в документе и в соответствии с порядком следования в документе.
NamedNodeMap getAttributes()
Объект NamedNodeMap, содержащий атрибуты этого узла (если он является Element), или null в противном случае.
String getBaseURI()
Абсолютный базовый URI этого узла или null, если реализации не удалось получить абсолютный URI.
NodeList getChildNodes()
Объект NodeList, содержащий все дочерние узлы этого узла.
Object getFeature(String feature, String version)
Этот метод возвращает специализированный объект, реализующий специализированные API указанной функции и версии, как указано в .
Node getFirstChild()
Первый дочерний узел этого узла.
Node getLastChild()
Последний дочерний узел этого узла.
String getLocalName()
Возвращает локальную часть квалифицированного имени этого узла.
String getNamespaceURI()
URI пространства имен этого узла или null, если он не указан (см. ).
Node getNextSibling()
Узел, непосредственно следующий за этим узлом.
String getNodeName()
Имя этого узла, зависящее от его типа; см. таблицу выше.
short getNodeType()
Код, обозначающий тип базового объекта, как определено выше.
String getNodeValue()
Значение этого узла, зависящее от его типа; см. таблицу выше.
Document getOwnerDocument()
Объект Document, связанный с этим узлом.
Node getParentNode()
Родительский узел этого узла.
String getPrefix()
Префикс пространства имен этого узла или null, если он не указан.
Node getPreviousSibling()
Узел, непосредственно предшествующий этому узлу.
String getTextContent()
Этот атрибут возвращает текстовое содержимое этого узла и его потомков.
Object getUserData(String key)
Получает объект, связанный с ключом в этом узле.
boolean hasAttributes()
Возвращает значение, указывающее, имеет ли этот узел (если он является элементом) какие-либо атрибуты.
boolean hasChildNodes()
Возвращает значение, указывающее, имеет ли этот узел дочерние узлы.
Node insertBefore(Node newChild, Node refChild)
Вставляет узел newChild перед существующим дочерним узлом refChild.
boolean isDefaultNamespace(String namespaceURI)
Этот метод проверяет, является ли указанный namespaceURI пространством имен по умолчанию.
boolean isEqualNode(Node arg)
Проверяет, равны ли два узла.
boolean isSameNode(Node other)
Возвращает значение, указывающее, является ли этот узел тем же узлом, что и указанный.
boolean isSupported(String feature, String version)
Проверяет, реализует ли DOM-реализация указанную функцию и поддерживается ли эта функция данным узлом, как указано в .
String lookupNamespaceURI(String prefix)
Ищет URI пространства имен, связанный с указанным префиксом, начиная с этого узла.
String lookupPrefix(String namespaceURI)
Ищет префикс, связанный с указанным URI пространства имен, начиная с этого узла.
void normalize()
Приводит все узлы Text во всем поддереве, находящемся под этим Node, включая узлы атрибутов, к «нормальной» форме, в которой узлы Text разделяются только структурными элементами (например, элементами, комментариями, инструкциями по обработке, разделами CDATA и ссылками на сущности); то есть смежные узлы Text и пустые узлы Text отсутствуют.
Node removeChild(Node oldChild)
Удаляет дочерний узел, указанный параметром oldChild, из списка дочерних узлов и возвращает его.
Node replaceChild(Node newChild, Node oldChild)
Заменяет дочерний узел oldChild узлом newChild в списке дочерних узлов и возвращает узел oldChild.
void setNodeValue(String nodeValue)
Значение этого узла, зависящее от его типа; см. таблицу выше.
void setPrefix(String prefix)
Префикс пространства имен этого узла или null, если он не указан.
void setTextContent(String textContent)
Этот атрибут возвращает текстовое содержимое этого узла и его потомков.
Object setUserData(String key, Object data, UserDataHandler handler)
Связывает объект с ключом в этом узле.

Подробное описание методов

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API