Документация интерфейса
- Все суперинтерфейсы:
Node
- Все известные дочерние интерфейсы:
HTMLDocument
public interface Document extends Node
Интерфейс Document представляет собой весь HTML- или XML-документ. По концепции он является корнем дерева документа и предоставляет основной доступ к данным документа.
Поскольку элементы, текстовые узлы, комментарии, инструкции обработки и т.д. не могут существовать вне контекста Document, интерфейс Document также содержит фабричные методы, необходимые для создания этих объектов. Созданные объекты Node имеют атрибут ownerDocument, который связывает их с Document в контексте которого они были созданы.
См. также Спецификацию Объектной модели документа (DOM) уровня 3 (Core).
Поля
Поля, объявленные в интерфейсе 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 Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Node | adoptNode(Node source) | Попытка принять узел из другого документа в этот документ. |
Attr | createAttribute(String name) | Создает |
Attr | createAttributeNS(String namespaceURI,
String qualifiedName) | Создает атрибут с заданным полным именем и URI пространства имён. |
CDATASection | createCDATASection(String data) | Создаёт узел |
Comment | createComment(String data) | Создаёт узел |
DocumentFragment | createDocumentFragment() | Создаёт пустой объект |
Element | createElement(String tagName) | Создаёт элемент заданного типа. |
Element | createElementNS(String namespaceURI,
String qualifiedName) | Создаёт элемент с заданным полным именем и URI пространства имён. |
EntityReference | createEntityReference(String name) | Создаёт объект |
ProcessingInstruction | createProcessingInstruction(String target,
String data) | Создаёт узел |
Text | createTextNode(String data) | Создаёт узел |
DocumentType | getDoctype() | Объявление типа документа (см. |
Element | getDocumentElement() | Атрибут, позволяющий напрямую получить дочерний узел, который является элементом документа. |
String | getDocumentURI() | Расположение документа или |
DOMConfiguration | getDomConfig() | Конфигурация, используемая при вызове |
Element | getElementById(String elementId) | Возвращает |
NodeList | getElementsByTagName(String tagname) | Возвращает |
NodeList | getElementsByTagNameNS(String namespaceURI,
String localName) | Возвращает |
DOMImplementation | getImplementation() | Объект |
String | getInputEncoding() | Атрибут, определяющий кодировку, используемую для этого документа во время разбора. |
boolean | getStrictErrorChecking() | Атрибут, определяющий, включена ли проверка ошибок. |
String | getXmlEncoding() | Атрибут, определяющий, как часть объявления XML, кодировку этого документа. |
boolean | getXmlStandalone() | Атрибут, определяющий, как часть объявления XML, является ли этот документ автономным. |
String | getXmlVersion() | Атрибут, определяющий, как часть объявления XML, номер версии этого документа. |
Node | importNode(Node importedNode,
boolean deep) | Импортирует узел из другого документа в этот документ, не изменяя или не удаляя исходный узел из исходного документа; этот метод создаёт новую копию исходного узла. |
void | normalizeDocument() | Этот метод действует так, как будто документ проходит цикл сохранения и загрузки, приводя документ в «нормальную» форму. |
Node | renameNode(Node n,
String namespaceURI,
String qualifiedName) | Переименовывает существующий узел типа |
void | setDocumentURI(String documentURI) | Расположение документа или |
void | setStrictErrorChecking(boolean strictErrorChecking) | Атрибут, определяющий, включена ли проверка ошибок. |
void | setXmlStandalone(boolean xmlStandalone) | Атрибут, определяющий, как часть объявления XML, является ли этот документ автономным. |
void | setXmlVersion(String xmlVersion) | Атрибут, определяющий, как часть объявления XML, номер версии этого документа. |
Методы, объявленные в интерфейсе 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 Методы
getDoctype
DocumentType getDoctype()
Декларация типа документа (см. DocumentType) для данного документа. Для XML-документов без декларации типа документа возвращает null. Для HTML-документов может быть возвращён объект DocumentType, независимо от наличия или отсутствия декларации типа документа в HTML-документе.
Обеспечивает прямой доступ к узлу DocumentType, дочернему узлу этого Document. Этот узел можно установить во время создания документа и изменить позже с помощью методов манипулирования дочерними узлами, таких как Node.insertBefore, или Node.replaceChild. Однако, хотя некоторые реализации могут создавать различные типы объектов Document с дополнительными функциями, отличными от "Core", такими как "HTML" [DOM Level 2 HTML], на основе DocumentType заданного во время создания, изменение его после создания вряд ли приведёт к изменению поддерживаемых функций.
- Since:
- 1.4, DOM Level 3
getImplementation
DOMImplementation getImplementation()
Объект DOMImplementation, обрабатывающий этот документ. Приложение DOM может использовать объекты из нескольких реализаций.
getDocumentElement
Element getDocumentElement()
Это атрибут-удобство, обеспечивающий прямой доступ к дочернему узлу, являющемуся элементом документа.
createElement
Element createElement(String tagName)
throws DOMException Создаёт элемент указанного типа. Обратите внимание, что возвращаемый экземпляр реализует интерфейс Element, поэтому атрибуты можно задавать непосредственно на возвращаемом объекте.
Кроме того, если известны атрибуты с значениями по умолчанию, узлы Attr автоматически создаются и прикрепляются к элементу.
Для создания элемента с квалифицированным именем и URI пространства имён используйте метод createElementNS.
- Parameters:
-
tagName- Название типа элемента для создания. Для XML оно чувствительно к регистру, в противном случае зависит от чувствительности к регистру используемого языка разметки. В этом случае имя отображается в каноническую форму этой разметки реализацией DOM. - Returns:
- Новый объект
Elementс атрибутомnodeNameустановленным вtagName, иlocalName,prefix, иnamespaceURIустановлены вnull. - Throws:
-
DOMException- INVALID_CHARACTER_ERR: Возникает, если указанное имя не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
createDocumentFragment
DocumentFragment createDocumentFragment()
Создаёт пустой объект DocumentFragment.
- Returns:
- Новый
DocumentFragment.
createTextNode
Text createTextNode(String data)
Создаёт узел Text с заданной строкой.
- Parameters:
-
data- Данные для узла. - Returns:
- Новый объект
Text.
createComment
Comment createComment(String data)
Создаёт узел Comment с заданной строкой.
- Parameters:
-
data- Данные для узла. - Returns:
- Новый объект
Comment.
createCDATASection
CDATASection createCDATASection(String data)
throws DOMException Создаёт узел CDATASection со значением указанной строки.
- Parameters:
-
data- Данные для содержимогоCDATASection. - Returns:
- Новый объект
CDATASection. - Throws:
-
DOMException- NOT_SUPPORTED_ERR: Возникает, если этот документ является HTML-документом.
createProcessingInstruction
ProcessingInstruction createProcessingInstruction(String target,
String data)
throws DOMException Создаёт узел ProcessingInstruction с заданными именем и данными строк.
- Parameters:
-
target- Целевая часть инструкции обработки. В отличие отDocument.createElementNSилиDocument.createAttributeNS, проверка правильности имени целевого пространства имён не выполняется. Приложения должны вызватьDocument.normalizeDocument()с параметром " namespaces" установленным вtrue, чтобы убедиться, что целевое имя имеет правильную форму пространства имён. -
data- Данные для узла. - Returns:
- Новый объект
ProcessingInstruction. - Throws:
-
DOMException- INVALID_CHARACTER_ERR: Возникает, если указанная цель не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
NOT_SUPPORTED_ERR: Возникает, если этот документ является HTML-документом.
createAttribute
Attr createAttribute(String name)
throws DOMException Создаёт Attr с заданным именем. Обратите внимание, что экземпляр Attr затем можно установить на Element с помощью метода setAttributeNode.
Для создания атрибута с квалифицированным именем и URI пространства имён используйте метод createAttributeNS.
- Parameters:
-
name- Название атрибута. - Returns:
- Новый объект
Attrс атрибутомnodeNameустановленным вname, иlocalName,prefix, иnamespaceURIустановлены вnull. Значение атрибута — пустая строка. - Throws:
-
DOMException- INVALID_CHARACTER_ERR: Возникает, если указанное имя не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
createEntityReference
EntityReference createEntityReference(String name)
throws DOMException Создаёт объект EntityReference . Кроме того, если связанная сущность известна, список дочерних узлов узла EntityReference устанавливается таким же, как и у соответствующего узла Entity.
Примечание: Если у любого потомка узла Entity есть не привязанный префикс пространства имён, то соответствующий потомок созданного узла EntityReference также не привязан; (его namespaceURI равен null). DOM Level 2 и 3 не поддерживают механизм разрешения префиксов пространства имён в этом случае.
- Parameters:
-
name- Название сущности для ссылки. В отличие отDocument.createElementNSилиDocument.createAttributeNS, проверка правильности имени сущности пространства имён не выполняется. Приложения должны вызватьDocument.normalizeDocument()с параметром " namespaces" установленным вtrue, чтобы убедиться, что имя сущности имеет правильную форму пространства имён. - Returns:
- Новый объект
EntityReference. - Throws:
-
DOMException- INVALID_CHARACTER_ERR: Возникает, если указанное имя не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
NOT_SUPPORTED_ERR: Возникает, если этот документ является HTML-документом.
getElementsByTagName
NodeList getElementsByTagName(String tagname)
Возвращает коллекцию NodeList всех элементов Elements в порядке документа с заданным именем тега и находящихся внутри документа.
- Parameters:
-
tagname- Имя тега для сопоставления. Специальное значение "*" соответствует всем тегам. Для XML параметрtagnameчувствителен к регистру, в противном случае это зависит от чувствительности к регистру используемого языка разметки. - Returns:
- Новый объект
NodeList, содержащий все соответствующие элементыElements.
importNode
Node importNode(Node importedNode,
boolean deep)
throws DOMException Импортирует узел из другого документа в этот документ, не изменяя и не удаляя исходный узел из исходного документа; этот метод создаёт новую копию исходного узла. Возвращённый узел не имеет родителя; (parentNode это null).
Для всех узлов импорт узла создаёт объект узла, принадлежащий импортирующему документу, со значениями атрибутов, идентичными значениям атрибутов исходного узла nodeName и nodeType, плюс атрибуты, связанные с пространствами имён (prefix, localName, и namespaceURI). Как и в операции cloneNode, исходный узел не изменяется. Данные пользователя, связанные с импортированным узлом, не переносятся. Однако, если какие-либо UserDataHandlers были указаны вместе с ассоциированными данными, эти обработчики будут вызваны с соответствующими параметрами до возврата этого метода.
Дополнительная информация копируется в nodeType, пытаясь отобразить поведение, ожидаемое при копировании фрагмента XML или HTML исходного кода из одного документа в другой, учитывая, что два документа могут иметь разные DTD в случае XML. Следующий список описывает особенности для каждого типа узла.
- ATTRIBUTE_NODE
- Атрибут
ownerElementустанавливается в значениеnull, а флагspecifiedустанавливается в значениеtrueна сгенерированномAttr. Потомки исходногоAttrрекурсивно импортируются, а полученные узлы собираются для формирования соответствующего поддерева. Обратите внимание, что параметрdeepне оказывает влияния на узлыAttr; они всегда переносят своих потомков вместе с собой при импорте. - DOCUMENT_FRAGMENT_NODE
- Если опция
deepбыла установлена в значениеtrue, потомки исходногоDocumentFragmentрекурсивно импортируются, а полученные узлы собираются под импортированнымDocumentFragmentдля формирования соответствующего поддерева. В противном случае это просто генерирует пустойDocumentFragment. - DOCUMENT_NODE
- Узлы
Documentимпортировать нельзя. - DOCUMENT_TYPE_NODE
- Узлы
DocumentTypeимпортировать нельзя. - ELEMENT_NODE
- Узлы атрибутов, указанные, исходного элемента импортируются, и сгенерированные
Attrузлы прикрепляются к сгенерированномуElement. Значения атрибутов по умолчанию не копируются, хотя если импортируемый документ определяет атрибуты по умолчанию для этого имени элемента, они назначаются. Если параметрimportNodedeepбыл установлен в значениеtrue, потомки исходного элемента рекурсивно импортируются, а полученные узлы собираются для формирования соответствующего поддерева. - ENTITY_NODE
- Узлы
Entityмогут быть импортированы, однако в текущей версии DOM атрибутDocumentTypeявляется только для чтения. Возможность добавления этих импортированных узлов вDocumentTypeбудет рассмотрена для добавления в будущие версии DOM. При импорте атрибутыpublicId,systemId, иnotationNameкопируются. Если запрос импортаdeepбыл сделан, потомки исходногоEntityрекурсивно импортируются, а полученные узлы собираются для формирования соответствующего поддерева. - ENTITY_REFERENCE_NODE
- Копируется только сам
EntityReference, даже если запрос импортаdeepбыл сделан, так как исходный и целевой документы могут по-разному определить сущность. Если импортируемый документ предоставляет определение для этого имени сущности, его значение назначается. - NOTATION_NODE
- Узлы
Notationмогут быть импортированы, однако в текущей версии DOM атрибутDocumentTypeявляется только для чтения. Возможность добавления этих импортированных узлов вDocumentTypeбудет рассмотрена для добавления в будущие версии DOM. При импорте атрибутыpublicIdиsystemIdкопируются. Обратите внимание, что параметрdeepне оказывает влияния на этот тип узлов, так как они не могут иметь потомков. - PROCESSING_INSTRUCTION_NODE
- Импортированный узел копирует свои значения
targetиdataиз значений исходного узла. Обратите внимание, что параметрdeepне оказывает влияния на этот тип узлов, так как они не могут иметь потомков. - TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
- Эти три типа узлов, наследующие от
CharacterData, копируют свои атрибутыdataиlengthиз атрибутов исходного узла. Обратите внимание, что параметрdeepне оказывает влияния на эти типы узлов, так как они не могут иметь потомков.
- Параметры:
-
importedNode- Узел для импорта. -
deep- Еслиtrue, рекурсивно импортировать поддерево под указанным узлом; еслиfalse, импортировать только сам узел, как описано выше. Это не влияет на узлы, которые не могут иметь потомков, и на узлыAttrиEntityReference. - Возвращает:
- Импортированный узел, принадлежащий этому
Document. - Выбрасывает:
-
DOMException- NOT_SUPPORTED_ERR: Выбрасывается, если тип импортируемого узла не поддерживается.
INVALID_CHARACTER_ERR: Выбрасывается, если одно из импортируемых имён не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion. Это может произойти, например, при импорте XML 1.1 [XML 1.1] элемента в документ XML 1.0. - С:
- 1.4, DOM Level 2
createElementNS
Element createElementNS(String namespaceURI,
String qualifiedName)
throws DOMException Создаёт элемент с заданным полным именем и URI пространства имён.
В соответствии с [XML Namespaces] приложения должны использовать значение null в качестве параметра namespaceURI для методов, если они хотят не использовать пространство имён.
- Параметры:
-
namespaceURI- URI пространства имён создаваемого элемента. -
qualifiedName- Полное имя типа элемента, подлежащего созданию. - Возвращает:
- Новый объект
Elementс следующими атрибутами:Атрибут Значение Node.nodeNamequalifiedNameNode.namespaceURInamespaceURINode.prefixпрефикс, извлечённый из qualifiedName, илиnullесли префикса нетNode.localNameлокальное имя, извлечённое из qualifiedNameElement.tagNamequalifiedName - Выбрасывает:
-
DOMException- INVALID_CHARACTER_ERR: Выбрасывается, если указанноеqualifiedNameне является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
NAMESPACE_ERR: Выбрасывается, еслиqualifiedNameявляется некорректным полным именем, если уqualifiedNameесть префикс иnamespaceURIимеет значениеnull, или если уqualifiedNameесть префикс «xml» иnamespaceURIотличается от " http://www.w3.org/XML/1998/namespace". [XML Namespaces] , или если уqualifiedNameили его префикса значение «xmlns» иnamespaceURIотличается от "http://www.w3.org/2000/xmlns/", или еслиnamespaceURIимеет значение "http://www.w3.org/2000/xmlns/" и ни уqualifiedNameни у его префикса значение «xmlns».
NOT_SUPPORTED_ERR: Всегда выбрасывается, если текущий документ не поддерживает функцию"XML", так как пространства имён определены XML. - С:
- 1.4, DOM Level 2
createAttributeNS
Attr createAttributeNS(String namespaceURI,
String qualifiedName)
throws DOMException Создаёт атрибут с заданным полным именем и URI пространства имён.
В соответствии с [XML Namespaces] приложения должны использовать значение null в качестве параметра namespaceURI для методов, если они хотят не использовать пространство имён.
- Параметры:
-
namespaceURI- URI пространства имён создаваемого атрибута. -
qualifiedName- Полное имя типа атрибута, подлежащего созданию. - Возвращает:
- Новый объект
Attrс следующими атрибутами:Атрибут Значение Node.nodeNamequalifiedName Node.namespaceURInamespaceURINode.prefixпрефикс, извлечённый из qualifiedName, илиnullесли префикса нетNode.localNameлокальное имя, извлечённое из qualifiedNameAttr.namequalifiedNameNode.nodeValueпустая строка - Выбрасывает:
-
DOMException- INVALID_CHARACTER_ERR: Выбрасывается, если указанноеqualifiedNameне является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
NAMESPACE_ERR: Выбрасывается, еслиqualifiedNameявляется некорректным полным именем, если уqualifiedNameесть префикс иnamespaceURIимеет значениеnull, если уqualifiedNameесть префикс «xml» иnamespaceURIотличается от " http://www.w3.org/XML/1998/namespace", если уqualifiedNameили его префикса значение «xmlns» иnamespaceURIотличается от "http://www.w3.org/2000/xmlns/", или еслиnamespaceURIимеет значение "http://www.w3.org/2000/xmlns/" и ни уqualifiedNameни у его префикса значение «xmlns».
NOT_SUPPORTED_ERR: Всегда выбрасывается, если текущий документ не поддерживает функцию"XML", так как пространства имён определены XML. - С:
- 1.4, DOM Level 2
getElementsByTagNameNS
NodeList getElementsByTagNameNS(String namespaceURI,
String localName) Возвращает коллекцию всех NodeList с заданным локальным именем и URI пространства имён в порядке документа.
- Параметры:
-
namespaceURI- URI пространства имён элементов для сопоставления. Специальное значение"*"соответствует всем пространствам имён. -
localName- Локальное имя элементов для сопоставления. Специальное значение "*" соответствует всем локальным именам. - Возвращает:
- Новый объект
NodeList, содержащий все соответствующие элементыElements. - С:
- 1.4, DOM Level 2
getElementById
Element getElementById(String elementId)
Возвращает элемент Element с атрибутом ID, имеющим заданное значение. Если такого элемента нет, возвращает null . Если более одного элемента имеет атрибут ID с этим значением, возвращаемое значение не определено.
Реализация DOM должна использовать атрибут Attr.isId для определения, является ли атрибут типом ID.
Примечание: Атрибуты с именем "ID" или "id" не являются типа ID, если не определено иначе.
- Параметры:
-
elementId- Уникальное значениеidдля элемента. - Возвращает:
- Соответствующий элемент или
null, если его нет. - С:
- 1.4, DOM Level 2
getInputEncoding
String getInputEncoding()
Атрибут, определяющий кодировку, используемую для этого документа во время парсинга. Это null , когда она неизвестна, например, когда Document был создан в памяти.
- С:
- 1.5, DOM Level 3
getXmlEncoding
String getXmlEncoding()
Атрибут, определяющий, как часть XML-декларации, кодировку этого документа. Это null , когда не указано или когда она неизвестна, например, когда Document был создан в памяти.
- С:
- 1.5, DOM Level 3
getXmlStandalone
boolean getXmlStandalone()
Атрибут, определяющий, как часть XML-декларации, является ли этот документ автономным. Это false , когда не указано.
Примечание: При установке этого атрибута проверка значения не выполняется. Приложения должны использовать Document.normalizeDocument() с параметром "validate" для проверки, соответствует ли значение ограничению валидности для объявления автономного документа, как определено в [XML 1.0].
- С:
- 1.5, DOM Level 3
setXmlStandalone
void setXmlStandalone(boolean xmlStandalone)
throws DOMException Атрибут, определяющий, как часть XML-декларации, является ли этот документ автономным. Это false , когда не указано.
Примечание: При установке этого атрибута проверка значения не выполняется. Приложения должны использовать Document.normalizeDocument() с параметром "validate" для проверки, соответствует ли значение ограничению валидности для объявления автономного документа, как определено в [XML 1.0].
- Исключения:
-
DOMException- NOT_SUPPORTED_ERR: Возникает, если этот документ не поддерживает функцию "XML". - С:
- 1.5, DOM Level 3
getXmlVersion
String getXmlVersion()
Атрибут, определяющий, как часть XML-декларации, номер версии этого документа. Если декларации нет и этот документ поддерживает функцию "XML", значение равно "1.0". Если этот документ не поддерживает функцию "XML", значение всегда равно null. Изменение этого атрибута повлияет на методы, проверяющие недопустимые символы в именах XML. Приложение должно вызвать Document.normalizeDocument() для проверки недопустимых символов в Node , которые уже являются частью этого Document.
Приложения DOM могут использовать метод DOMImplementation.hasFeature(feature, version) с параметрами "XMLVersion" и "1.0" (соответственно) для определения, поддерживает ли реализация [XML 1.0]. Приложения DOM могут использовать тот же метод с параметрами "XMLVersion" и "1.1" (соответственно) для определения, поддерживает ли реализация [XML 1.1]. В обоих случаях, чтобы поддерживать XML, реализация должна также поддерживать функцию "XML", определённую в этом спецификации. Document объекты, поддерживающие версию функции "XMLVersion", не должны генерировать исключение NOT_SUPPORTED_ERR для того же номера версии при использовании Document.xmlVersion.
- С:
- 1.5, DOM Level 3
setXmlVersion
void setXmlVersion(String xmlVersion)
throws DOMException Атрибут, определяющий, как часть XML-декларации, номер версии этого документа. Если декларации нет и этот документ поддерживает функцию "XML", значение равно "1.0". Если этот документ не поддерживает функцию "XML", значение всегда равно null. Изменение этого атрибута повлияет на методы, проверяющие недопустимые символы в именах XML. Приложение должно вызвать Document.normalizeDocument() для проверки недопустимых символов в Node , которые уже являются частью этого Document.
Приложения DOM могут использовать метод DOMImplementation.hasFeature(feature, version) с параметрами "XMLVersion" и "1.0" (соответственно) для определения, поддерживает ли реализация [XML 1.0]. Приложения DOM могут использовать тот же метод с параметрами "XMLVersion" и "1.1" (соответственно) для определения, поддерживает ли реализация [XML 1.1]. В обоих случаях, чтобы поддерживать XML, реализация должна также поддерживать функцию "XML", определённую в этом спецификации. Document объекты, поддерживающие версию функции "XMLVersion", не должны генерировать исключение NOT_SUPPORTED_ERR для того же номера версии при использовании Document.xmlVersion.
- Исключения:
-
DOMException- NOT_SUPPORTED_ERR: Возникает, если версия установлена на значение, которое не поддерживается этимDocumentили если этот документ не поддерживает функцию "XML". - С:
- 1.5, DOM Level 3
getStrictErrorChecking
boolean getStrictErrorChecking()
Атрибут, определяющий, выполняется ли проверка ошибок. При установке в значение false, реализация свободна не проверять все возможные ошибки, обычно определяемые операциями DOM, и не генерировать DOMException при операциях DOM или сообщать об ошибках при использовании Document.normalizeDocument(). В случае ошибки поведение не определено. По умолчанию этот атрибут true.
- С:
- 1.5, DOM Level 3
setStrictErrorChecking
void setStrictErrorChecking(boolean strictErrorChecking)
Атрибут, определяющий, выполняется ли проверка ошибок. При установке в значение false, реализация свободна не проверять все возможные ошибки, обычно определяемые операциями DOM, и не генерировать DOMException при операциях DOM или сообщать об ошибках при использовании Document.normalizeDocument(). В случае ошибки поведение не определено. По умолчанию этот атрибут true.
- С:
- 1.5, DOM Level 3
getDocumentURI
String getDocumentURI()
Расположение документа или null , если не определено или если DOMImplementation.createDocument был создан с использованием DOMImplementation.createDocument. Лексическая проверка при установке этого атрибута не выполняется; это может привести к возврату null значения при использовании Node.baseURI .
Обратите внимание, что когда Document поддерживает функцию "HTML" [DOM Level 2 HTML], атрибут href элемента HTML BASE имеет приоритет над этим атрибутом при вычислении Node.baseURI.
- С:
- 1.5, DOM Level 3
setDocumentURI
void setDocumentURI(String documentURI)
Расположение документа или null , если не определено или если Document был создан с использованием DOMImplementation.createDocument. Лексическая проверка при установке этого атрибута не выполняется; это может привести к возврату null значения при использовании Node.baseURI .
Обратите внимание, что когда Document поддерживает функцию "HTML" [DOM Level 2 HTML], атрибут href элемента HTML BASE имеет приоритет над этим атрибутом при вычислении Node.baseURI.
- С:
- 1.5, DOM Level 3
adoptNode
Node adoptNode(Node source)
throws DOMException Попытка принять узел из другого документа в этот документ. Если поддерживается, изменяет ownerDocument исходного узла, его дочерних элементов, а также присоединённых атрибутных узлов, если таковые имеются. Если у исходного узла есть родитель, он сначала удаляется из списка дочерних элементов своего родителя. Это эффективно позволяет перемещать поддерево из одного документа в другой (в отличие от importNode() , которое создаёт копию исходного узла вместо перемещения). При неудаче приложения должны использовать Document.importNode() вместо этого. Обратите внимание, что если принятый узел уже является частью этого документа (т.е. исходный и целевой документы одинаковы), этот метод всё равно имеет эффект удаления исходного узла из списка дочерних элементов его родителя, если таковой имеется. Следующий список описывает особенности для каждого типа узла.
- ATTRIBUTE_NODE
- Атрибут
ownerElementустанавливается вnull, а флагspecifiedустанавливается вtrueна принятомAttr. Потомки исходногоAttrрекурсивно принимаются. - DOCUMENT_FRAGMENT_NODE
- Потомки исходного узла рекурсивно принимаются.
- DOCUMENT_NODE
- Узлы
Documentне могут быть приняты. - DOCUMENT_TYPE_NODE
- Узлы
DocumentTypeне могут быть приняты. - ELEMENT_NODE
- Указанные атрибутные узлы исходного элемента принимаются. Значения по умолчанию игнорируются, хотя если документ, в который принимается узел, определяет значения по умолчанию для этого имени элемента, они присваиваются. Потомки исходного элемента рекурсивно принимаются.
- ENTITY_NODE
- Узлы
Entityне могут быть приняты. - ENTITY_REFERENCE_NODE
- Принимается только сам узел
EntityReference, потомки отбрасываются, так как исходный и целевой документы могут по-разному определять сущность. Если импортируемый документ предоставляет определение для этого имени сущности, его значение присваивается. - NOTATION_NODE
-
Узлы
Notationне могут быть приняты. - PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
- Все эти узлы могут быть приняты. Нет особых указаний.
Примечание: Поскольку он не создаёт новые узлы в отличие от метода Document.importNode(), этот метод не вызывает исключение INVALID_CHARACTER_ERR, и приложения должны использовать метод Document.normalizeDocument() для проверки, является ли импортируемое имя не XML-именем в соответствии с используемой версией XML.
- Параметры:
-
source- Узел, который необходимо переместить в этот документ. - Возвращает:
- Принятый узел или
null, если операция не удалась, например, когда исходный узел происходит от другой реализации. - Вызывает:
-
DOMException- NOT_SUPPORTED_ERR: Вызывается, если исходный узел имеет типDOCUMENT,DOCUMENT_TYPE.
NO_MODIFICATION_ALLOWED_ERR: Вызывается, когда исходный узел является только для чтения. - С:
- 1.5, DOM Level 3
getDomConfig
DOMConfiguration getDomConfig()
Конфигурация, используемая при вызове Document.normalizeDocument().
- С:
- 1.5, DOM Level 3
normalizeDocument
void normalizeDocument()
Этот метод действует так, как если бы документ проходил цикл сохранения и загрузки, помещая документ в «нормальную» форму. Вследствие этого этот метод обновляет дерево замещения узлов EntityReference и нормализует узлы Text , как определено в методе Node.normalize().
В противном случае фактический результат зависит от настроек, установленных в объекте Document.domConfig , и определяющих, какие операции фактически выполняются. Заметно, что этот метод также может сделать пространство имён документа хорошо сформированным в соответствии с алгоритмом, описанным в , проверить нормализацию символов, удалить узлы CDATASection и т. д. См. DOMConfiguration для получения подробностей.
// Keep in the document
the information defined // in the XML Information Set (Java example)
DOMConfiguration docConfig = myDocument.getDomConfig();
docConfig.setParameter("infoset", Boolean.TRUE);
myDocument.normalizeDocument(); События мутации, когда поддерживаются, генерируются для отражения изменений, происходящих в документе.
Если при вызове этого метода возникнут ошибки, такие как попытка обновить узел только для чтения или
Node.nodeName содержит недопустимый символ в соответствии с используемой версией XML, ошибки или предупреждения (DOMError.SEVERITY_ERROR или DOMError.SEVERITY_WARNING) будут сообщены с использованием объекта DOMErrorHandler , связанного с параметром «обработчик ошибок». Обратите внимание, что этот метод также может сообщать об ошибках (DOMError.SEVERITY_FATAL_ERROR) , если реализация не может восстановиться от ошибки. - С:
- 1.5, DOM Level 3
renameNode
Node renameNode(Node n,
String namespaceURI,
String qualifiedName)
throws DOMException Переименование существующего узла типа ELEMENT_NODE или ATTRIBUTE_NODE.
Когда это возможно, это просто изменяет имя данного узла, в противном случае это создаёт новый узел с указанным именем и заменяет существующий узел новым узлом, как описано ниже.
Если простое изменение имени данного узла невозможно, выполняются следующие операции: создаётся новый узел, любой зарегистрированный обработчик событий регистрируется на новом узле, любые данные пользователя, прикреплённые к старому узлу, удаляются с этого узла, старый узел удаляется из своего родителя, если таковой имеется, дочерние элементы перемещаются на новый узел, если переименованный узел является Element, его атрибуты перемещаются на новый узел, новый узел вставляется в позицию, которую занимал старый узел в списке дочерних элементов родительского узла, если таковой имеется, данные пользователя, которые были прикреплены к старому узлу, прикрепляются к новому узлу.
Когда переименовываемый узел является Element, перемещаются только указанные атрибуты, атрибуты по умолчанию, полученные из DTD, обновляются в соответствии с новым именем элемента. Кроме того, реализация может обновить атрибуты по умолчанию из других схем. Приложения должны использовать Document.normalizeDocument() для гарантии актуальности этих атрибутов.
Когда переименовываемый узел является Attr, который прикреплён к Element, узел сначала удаляется из карты атрибутов Element. Затем, после переименования, либо путём изменения существующего узла, либо путём создания нового, как описано выше, он возвращается.
Кроме того,
- генерируется событие данных пользователя
NODE_RENAMED, - когда реализация поддерживает функцию «события изменения имени», каждая операция изменения, участвующая в этом методе, генерирует соответствующее событие, и в конце генерируется событие {
http://www.w3.org/2001/xml-events,DOMElementNameChanged} или {http://www.w3.org/2001/xml-events,DOMAttributeNameChanged}.
- Параметры:
-
n- Узел для переименования. -
namespaceURI- Новый URI пространства имён. -
qualifiedName- Новое полное имя. - Возвращает:
- Переименованный узел. Это либо указанный узел, либо новый узел, который был создан для замены указанного узла.
- Вызывает:
-
DOMException- NOT_SUPPORTED_ERR: Вызывается, когда тип указанного узла не является ниELEMENT_NODE, ниATTRIBUTE_NODE, или если реализация не поддерживает переименование элемента документа.
INVALID_CHARACTER_ERR: Вызывается, если новое полное имя не является XML-именем в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
WRONG_DOCUMENT_ERR: Вызывается, когда указанный узел был создан из другого документа, чем этот.
NAMESPACE_ERR: Вызывается, еслиqualifiedNameявляется неправильно сформированным полным именем, если уqualifiedNameесть префикс иnamespaceURIимеет значениеnull, или если уqualifiedNameесть префикс «xml» иnamespaceURIотличается от " http://www.w3.org/XML/1998/namespace" [XML Namespaces]. Также вызывается, когда переименовываемый узел является атрибутом, еслиqualifiedName, или его префикс, равен «xmlns» иnamespaceURIотличается от "http://www.w3.org/2000/xmlns/". - С:
- 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/Document.html