Интерфейс текста
- Все суперинтерфейсы:
-
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
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
String |
getWholeText() |
Возвращает весь текст узлов Text логически смежных узлов текста с этим узлом, конкатенированных в порядке документа. |
boolean |
isElementContentWhitespace() |
Возвращает значение, указывающее, содержит ли этот узел текста пробелы содержимого элемента, часто неудачно называемые "пробелами, которые можно игнорировать". |
Text |
replaceWholeText |
Заменяет текст текущего узла и всех логически смежных узлов текста указанным текстом. |
Text |
splitText |
Разбивает этот узел на два узла в указанной 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, 2023, 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/21/docs/api/java.xml/org/w3c/dom/Text.html