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

См. также Спецификацию объектной модели документа (DOM) уровня 3.

Поля

Поля, объявленные в интерфейсе 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

Методы

Модификатор и типМетодОписание
StringgetWholeText()

Возвращает весь текст узлов Text логически-смежных узлов текста этому узлу, соединенных в порядке документа.

booleanisElementContentWhitespace()

Возвращает, содержит ли этот узел текста пробелы содержимого элемента, часто некорректно называемые "пробелами, которые можно игнорировать".

TextreplaceWholeText​(String content)

Заменяет текст текущего узла и всех логически-смежных узлов текста указанным текстом.

TextsplitText​(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, 2020, 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/11/docs/api/java.xml/org/w3c/dom/Text.html

Spec-Zone .ru
спецификации, руководства, описания, API