Интерфейс Text
- Все суперинтерфейсы:
- CharacterData, Node
- Все известные подинтерфейсы:
- CDATASection, Text
public interface Text extends CharacterData
Интерфейс Text наследуется от CharacterData и представляет текстовое содержимое (называемое данными символов в XML) Element или Attr. Если в содержании элемента нет разметки, текст содержится в одном объекте, реализующем интерфейс Text, который является единственным дочерним элементом. Если есть разметка, она парсится в элементы информации (элементы, комментарии и т. д.) и узлы Text , которые образуют список дочерних элементов.
Когда документ впервые становится доступным через DOM, для каждого блока текста существует только один узел Text. Пользователи могут создавать смежные узлы Text, которые представляют содержимое данного элемента без каких-либо промежуточных разметки, но должны учитывать, что нет способа представить разделения между этими узлами в XML или HTML, поэтому они не будут (в общем случае) сохраняться между сеансами редактирования DOM. Метод Node.normalize() объединяет любые такие смежные объекты Text в один узел для каждого блока текста.
Над содержимым узла Text не выполняется лексическая проверка и, в зависимости от его позиции в документе, некоторые символы должны быть экранированы при сериализации с помощью символьных ссылок; например, символы "<&" если текстовое содержимое является частью элемента или атрибута, последовательность символов "]]>" при части элемента, символ кавычки " или символ апострофа ' при части атрибута.
См. также Спецификацию уровня 3 ядра Document Object Model (DOM).
Поля
Поля, унаследованные от интерфейса 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() Возвращает весь текст узлов |
boolean |
isElementContentWhitespace() Возвращает, содержит ли этот узел текста пробелы содержимого элемента, часто некорректно называемые «пробелами, допускаемыми игнорирования». |
Text |
replaceWholeText(String content) Заменяет текст текущего узла и всех логически смежных узлов текста указанным текстом. |
Text |
splitText(int 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().
- С:
- DOM Level 3
getWholeText
String getWholeText()
Возвращает весь текст узлов Text, логически смежных с этим узлом, конкатенированных в порядке документа.
Например, в примере ниже wholeText на узле Text, содержащем "bar", возвращает "barfoo", а на узле Text, содержащем "foo", возвращает "barfoo".
+-----+
| <p> |
+-----+
/\
/ \
/-----\ +-------+
| bar | | &ent; |
\-----/ +-------+
|
|
/-----\
| foo |
\-----/ Рисунок: значение barTextNode.wholeText равно "barfoo" - С:
- 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замены является только для чтения. - С:
- 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.