Spec-Zone.ru › OpenJDK 24

Интерфейс Текст

Все суперинтерфейсы:
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 не выполняется лексическая проверка, и в зависимости от его положения в документе некоторые символы должны быть экранированы при сериализации с помощью символьных ссылок; например, символы "<&" если текстовое содержимое является частью элемента или атрибута, последовательность символов "]]>" при вхождении в элемент, символ кавычек " или символ апострофа ' при вхождении в атрибут.

См. также Спецификацию уровня 3 Core языка Document Object Model (DOM).

С:
1.4, DOM Level 2

Краткое описание полей

Поля, объявленные в интерфейсе 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 - Смещение в 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://download.java.net/java/early_access/jdk24/docs/api/java.xml/org/w3c/dom/Text.html

Spec-Zone.ru

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