Документация DHTML
| Документация DHTML | Документация Smarty | SVG/VML Графика и JavaScript
| Документация bash |
Глава 4.3. Узлы дерева документа
В этой главе мы рассматриваем базовый тип узлов дерева документа и списки, образованные такими узлами.
4.3.1. Абстрактный узел: интерфейс Node
Поддержка: Поддерживается для XML-документов (XMLDOMNode); для HTML-документов поддерживается частично. DOM 1 полностью, DOM 2 частично.
Интерфейс Node соответствует абстрактному узлу дерева XML- или HTML-документа. Все конкретные составляющие документа реализуются интерфейсами, которые являются его потомками. Тип узла задается значением его свойства nodeType в соответствии со следующей таблицей:
Название | Значение | Интерфейс | Описание |
---|---|---|---|
ELEMENT_NODE | 1 | Element | Элемент |
ATTRIBUTE_NODE | 2 | Attr | Атрибут |
TEXT_NODE | 3 | Text | Текст |
CDATA_SECTION_NODE | 4 | CDATASection | Секция CDATA |
ENTITY_REFERENCE_NODE | 5 | EntityReference | Ссылка на раздел |
ENTITY_NODE | 6 | Entity | Раздел документа |
PROCESSING_INSTRUCTION_NODE | 7 | ProcessingInstruction | Директива |
COMMENT_NODE | 8 | Comment | Комментарий |
DOCUMENT_NODE | 9 | Document | Документ |
DOCUMENT_TYPE_NODE | 10 | DocumentType | Тип документа |
DOCUMENT_FRAGMENT_NODE | 11 | DocumentFragment | Фрагмент документа |
NOTATION_NODE | 12 | Notation | Нотация |
Значения свойств узла nodeName, nodeValue и attributes меняются в зависимости от его типа:
Интерфейс | nodeName | nodeValue | attributes |
---|---|---|---|
Attr | Имя атрибута | Значение атрибута | null |
CDATASection | #cdata-section | Содержимое секции CDATA | null |
Document | #document | null | null |
DocumentFragment | #document-fragment | null | null |
DocumentType | Имя типа документа | null | null |
Element | Тег элемента | null | NamedNodeMap |
Entity | Имя раздела | null | null |
EntityReference | Имя раздела | null | null |
Notation | Имя нотации | null | null |
ProcessingInstruction | Имя директивы | Содержимое директивы | null |
Text | #text | Содержимое текстового узла | null |
Примечание. Internet Explorer поддерживает только узлы типа Element, Attr и Text. Для остальных типов узлов перечисленные в таблице свойства не определены.
Свойство | Изменяемое | Модель | Описание |
---|---|---|---|
attributes | Нет | DOM 1 | Атрибуты узла. |
childNodes | Нет | DOM 1 | Список детей. |
firstChild | Нет | DOM 1 | Первый ребенок. |
lastChild | Нет | DOM 1 | Последний ребенок. |
localName | Нет | DOM 2 | Локальное имя в пространстве имен. |
namespaceURI | Нет | DOM 2 | URI пространства имен. |
nextSibling | Нет | DOM 1 | Следующий узел дерева. |
nodeName | Нет | DOM 1 | Имя узла. |
nodeType | Нет | DOM 1 | Тип узла. |
nodeValue | Да | DOM 1 | Значение узла. |
ownerDocument | Нет | DOM 1 | Документ владелец узла. |
parentNode | Нет | DOM 1 | Отец данного узла. |
prefix | Да | DOM 2 | Префикс пространства имен. |
previousSibling | Нет | DOM 1 | Предыдущий узел дерева. |
Свойство | Модель | Описание |
---|---|---|
appendChild | DOM 1 | Добавляет сына в конец списка детей. |
cloneNode | DOM 1 | Создает копию данного узла. |
hasAttrbutes | DOM 2 | Проверяет наличие у узла атрибутов. |
hasChildNodes | DOM 1 | Проверяет наличие у узла детей. |
insertBefore | DOM 1 | Вставляет новый узел перед заданным сыном. |
isSupported | DOM 2 | Проверяет свойство реализации DOM. |
normalize | DOM 1 | Нормализует текстовое содержимое узла. |
removeChild | DOM 1 | Удаляет заданного сына. |
replaceChild | DOM 1 | Заменяет заданного сына новым узлом. |
Свойство attributes
Синтаксис: узел.attributes Изменяемое: нет
Поддержка: Для XML-документов соответствует стандарту; для HTML-документов частично (см. прим.). Соответствует стандарту.
Свойство attributes возвращает объект типа NamedNodeMap, содержащий список всех атрибутов данного узла, если узел имеет тип Element, и null в противном случае.
Примечание. В Internet Explorer это свойство реализовано нестандартно:
- Список атрибутов элемента является статическим, а не живым, т. е. изменение атрибутов элемента не влечет его автоматического обновления.
- Этот список не содержит атрибута style (для доступа к нему используется нестандартное свойство узел.style.cssText) и expando-атрибутов.
Следующий пример
<BODY bgcolor="yellow" text="green"> <SCRIPT> var body = document.getElementsByTagName("BODY")[0]; var attrs = body.attributes; for (var i = 0; i < attrs.length; i++) { if (attrs[i].nodeValue) document.write(attrs[i].nodeName, "=", attrs[i].nodeValue, " "); } </SCRIPT> </BODY>
выведет в Gecko текст: bgcolor=yellow text=green,
а в Internet Explorer: contentEditable=inherit text=1140883456 bgColor=-1694433281.
Свойство childNodes
Синтаксис: узел.childNodes Изменяемое: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Свойство childNodes возвращает объект типа NodeList, содержащий список всех детей данного узла. Если узел не имеет детей, то возвращается список нулевой длины. Следующий пример
<BODY> <SCRIPT> var body = document.getElementsByTagName("BODY")[0]; var list = body.childNodes; for (var i = 0; i < list.length; i++) { document.write(list[i].nodeName, " "); } </SCRIPT> </BODY>
выведет в Gecko текст: #text SCRIPT, а в Internet Explorer: SCRIPT #text. Как мы видим, порядок элементов в списке может быть любым; гарантируется только, что в нем присутствуют все дети данного узла.
Свойство firstChild
Синтаксис: узел.firstChild Изменяемое: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Свойство firstChild возвращает указатель на первый узел, являющийся сыном
данного узла. Если узел не имеет детей, то возвращается null. Это свойство
эквивалентно выражению узел.childNodes[0]
.
Свойство lastChild
Синтаксис: узел.lastChild Изменяемое: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Свойство lastChild возвращает указатель на последний узел, являющийся сыном
данного узла. Если узел не имеет детей, то возвращается null. Это свойство
эквивалентно выражению узел.childNodes[узел.childNodes.length-1]
.
Свойство localName
Синтаксис: узел.localName Изменяемое: нет
Поддержка: Не поддерживается. Не поддерживается.
Свойство localName возвращает строку, содержащую локальную часть ограниченного имени узла. Оно имеет смысл только для узлов типа Element и Attr, созданных соответственно методами CreateElementNS и CreateAttributeNS. В остальных случаях возвращается null.
Свойство namespaceURI
Синтаксис: узел.namespaceURI Изменяемое: нет
Поддержка: Только для XML-документов. Не поддерживается.
Свойство namespaceURI возвращает строку, содержащую URI пространства имен данного узла. Оно имеет смысл только для узлов типа Element и Attr, созданных соответственно методами CreateElementNS и CreateAttributeNS. В остальных случаях возвращается null.
Свойство nextSibling
Синтаксис: узел.nextSibling Изменяемое: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Свойство nextSibling возвращает указатель на узел, непосредственно следующий в документе за данным узлом. Если такого узла нет, то возвращается null.
Свойство nodeName
Синтаксис: узел.nodeName Изменяемое: нет
Поддержка: Для XML-документов соответствует стандарту; для HTML-документов частично (см. прим. к Таблице 4.4). Соответствует стандарту.
Свойство nodeName возвращает строку, содержащую имя данного узла согласно
Таблицы 4.4. Пример: оператор alert(document.nodeName)
выведет
в Gecko строку #document (в Internet Explorer имя узла Document не определено).
Свойство nodeType
Синтаксис: узел.nodeType Изменяемое: нет
Поддержка: Для XML-документов соответствует стандарту; для HTML-документов частично (см. прим.). Соответствует стандарту.
Свойство nodeType возвращает тип данного узла согласно Таблицы 4.3.
Примечание. В Internet Explorer это свойство реализовано для узлов Element и Text. Для остальных типов узлов оно не определено.
Пример: оператор alert(document.nodeName)
выведет в Gecko строку 9.
Свойство nodeValue
Синтаксис: узел.nodeValue Изменяемое: да Исключения: NO_MODIFICATION_ALLOWED_ERR (при записи), DOMSTRING_SIZE_ERR (при чтении)
Поддержка: Cоответствует стандарту. Соответствует стандарту.
Свойство nodeValue обеспечивает доступ к значению данного узла. Значение узла зависит от его типа (см. Таблицу 4.4). Если значением узла может быть только null, то попытка изменить его значение игнорируется. Пример:
var text = document.createTextNode(""); text.nodeValue = "Пример абзаца."; var elem = document.createElement("P"); elem.appendChild(text); document.body.appendChild(elem);
Свойство ownerDocument
Синтаксис: узел.ownerDocument Изменяемое: нет
Поддержка: Только для XML-документов. Соответствует стандарту.
Свойство ownerDocument возвращает указатель на объект Document, к которому принадлежит данный узел. Для узлов типа Document и DocumentType, которые еще не связаны с конкретным документом, возвращается null. Пример:
var elem = document.createElement("P"); document.body.appendChild(elem); alert(elem.ownerDocument.documentElement.nodeName);
Свойство parentNode
Синтаксис: узел.parentNode Изменяемое: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Свойство parentNode возвращает указатель на узел, являющийся отцом данного узла. Если узел не имеет отца, то возвращается null.
Свойство prefix
Синтаксис: узел.prefix Изменяемое: да Исключения: INVALID_CHARACTER_ERR, NO_MODIFICATION_ALLOWED_ERR, NAMESPACE_ERR
Поддержка: Только для XML-документов; неизменяемое. Не поддерживается.
Свойство prefix возвращает строку, содержащую префикс пространства имен данного узла. Оно имеет смысл только для узлов типа Element и Attr, созданных соответственно методами CreateElementNS и CreateAttributeNS. В остальных случаях возвращается null.
При записи этого свойства автоматически изменяются свойство узла nodeName, содержащее ограниченное имя узла, а также свойства tagName (если это Element) и name (если это Attr).
Свойство previousSibling
Синтаксис: узел.previousSibling Изменяемое: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Свойство previousSibling возвращает указатель на узел, непосредственно предшествующий в документе данному узлу. Если такого узла нет, то возвращается null.
Метод appendChild
Синтаксис: узел.appendChild(newChild) Аргументы: newChild выражение типа Node Результат: узел Node Исключения: HIERARCHY_REQUEST_ERR, WRONG_DOCUMENT_ERR, NO_MODIFICATION_ALLOWED_ERR
Поддержка: Соответствует стандарту. Соответствует стандарту.
Метод appendChild добавляет узел newChild в конец списка детей данного узла и возвращает его в качестве результата. Если узел newChild уже был в списке, то он сначала удаляется, а затем добавляется. Пример: сценарий
var elem = document.createElement("IMG"); document.body.appendChild(elem); alert(document.body.lastChild.tagName);
выведет на экран текст IMG.
Метод cloneNode
Синтаксис: узел.cloneNode(deep) Аргументы: deep логическое выражение Результат: новый узел Node Исключения: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Метод cloneNode создает копию данного узла и возвращает ее. Если аргумент deep равен true, то создается копия поддерева документа, начиная с данного узла; если он равен false, то копируется только сам узел (и его атрибуты, если это Element).
Метод hasAttributes
Синтаксис: узел.hasAttributes() Результат: логическое значение Исключения: нет
Поддержка: Не поддерживается. Соответствует стандарту.
Метод hasAttributes возвращает true, если узел является элементом
и имеет хотя бы один атрибут. В остальных случаях возвращается false. Вызов
этого метода эквивалентен выражению (узел.attributes.length != 0)
.
Метод hasChildNodes
Синтаксис: узел.hasChildNodes() Результат: логическое значение Исключения: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Метод hasChildNodes возвращает true, если узел имеет хотя
бы одного ребенка; в противном случае возвращается false. Вызов этого метода
эквивалентен выражению (узел.childNodes.length != 0)
.
Метод insertBefore
Синтаксис: узел.insertBefore(newChild, refChild) Аргументы: newChild, refChild выражения типа Node Результат: узел Node Исключения: HIERARCHY_REQUEST_ERR, WRONG_DOCUMENT_ERR, NO_MODIFICATION_ALLOWED_ERR, NOT_FOUND_ERR
Поддержка: Соответствует стандарту. Соответствует стандарту.
Метод insertBefore вставляет узел newChild в список детей данного узла перед узлом refChild и возвращает его в качестве результата. Если узел newChild уже был в списке, то он сначала удаляется, а затем добавляется. Пример: сценарий
var elem = document.createElement("IMG"); document.body.insertBefore(elem, document.body.firstChild); alert(document.body.firstChild.tagName);
выведет на экран текст IMG.
Метод isSupported
Синтаксис: объект.isSupported(feature, version) Аргументы: feature, version выражения типа DOMString Результат: логическое значение Исключения: нет
Поддержка: Не поддерживается. Соответствует стандарту.
Метод isSupported возвращает true, если реализация DOM поддерживает указанное свойство, и false в противном случае. Имя свойства (в любом регистре) задается аргументом feature; оно должно соответствовать правилам образования имен XML. Аргумент version задает имя версии проверяемого свойства. Если он не задан, то возвращается true, если поддерживается хотя бы какая-то версия данного свойства. Ср. метод DOMImplementation.hasFeature.
В Gecko значениями feature могут быть строки "XML" и "HTML", а значением version строки "1.0" и "2.0". Пример:
alert(document.body.isSupported("HTML", "1.0")); alert(document.body.isSupported("HTML", "2.0")); alert(document.body.isSupported("HTML", "3.0"));
Первые два оператора alert выведут строку true, а третий false.
Метод normalize
Синтаксис: узел.normalize() Исключения: нет
Поддержка: Только для XML-документов. Соответствует стандарту.
Метод normalize нормализует текстовое содержимое данного узла. Нормализация состоит в том, что пустые текстовые узлы удаляются, а соседние текстовые узлы сливаются в один. В результате остаются только текстовые узлы, разделенные какими-либо символами разметки (тегами, комментариями, директивами, секциями CDATA или ссылками на разделы). Нормализованная форма элементов дерева обеспечивает неизменность его структуры при сохранении и перезагрузке. Следующий пример нормализует все абзацы документа.
var pars = document.getElementsByTagName("P"); for (var i = 0; i < pars.length; i++) pars[i].normalize();
Метод removeChild
Синтаксис: узел.removeChild(oldChild) Аргументы: oldChild выражение типа Node Результат: узел Node Исключения: NO_MODIFICATION_ALLOWED_ERR, NOT_FOUND_ERR
Поддержка: Соответствует стандарту. Соответствует стандарту.
Метод removeChild удаляет узел oldChild из списка детей данного узла и возвращает его в качестве результата. Пример:
document.body.removeChild(document.body.firstChild);
Метод replaceChild
Синтаксис: узел.replaceChild(newChild, oldChild) Аргументы: newChild, oldChild выражения типа Node Результат: узел Node Исключения: HIERARCHY_REQUEST_ERR, WRONG_DOCUMENT_ERR, NO_MODIFICATION_ALLOWED_ERR, NOT_FOUND_ERR
Поддержка: Соответствует стандарту. Соответствует стандарту.
Метод replaceChild заменяет узел oldChild в списке детей данного узла на узел newChild и возвращает oldChild в качестве результата. Если newChild уже был в списке детей, то он удаляется из него до замены. Пример:
var elem = document.createElement("P"); document.body.replaceChild(elem, document.body.firstChild);
4.3.2. Упорядоченный список узлов: интерфейс NodeList
Поддержка: Для XML-документов соответствует стандарту (XMLDOMNodeList); для HTML-документов поддерживается в виде коллекций. Соответствует стандарту.
Интерфейс NodeList реализует упорядоченные списки узлов, которые возвращаются многими свойствами и методами DOM. Списки узлов в DOM являются живыми, т. е. любое изменение документа влечет автоматическое изменение всех связанных с ним списков.
Этот интерфейс имеет единственное свойство length, возвращающее количество узлов в списке, и единственный метод item, возвращающий элемент списка с заданным номером (элементы списка узлов нумеруются, начиная с нуля).
Свойство length
Синтаксис: список.length Изменяемое: нет
Поддержка: Cоответствует стандарту. Соответствует стандарту.
Свойство length возвращает количество элементов в данном списке. Допустимые индексы элементов списка лежат в диапазоне от 0 до length-1 включительно. Следующий пример выводит на экран количество элементов в дереве документа:
alert(document.getElementsByTagName("*").length); // в Gecko (стандарт) alert(document.all.length); // в Internet Explorer
Метод item
Синтаксис: список.item(index) Аргументы: index числовое выражение Результат: узел Node или null Исключения: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Метод item возвращает элемент списка узлов с заданным индексом в качестве результата. Если индекс выходит за пределы диапазона элементов списка, то возвращается null. Пример: оператор
alert(document.childNodes.item(0).nodeName);
выведет на экран текст HTML.
JavaScript позволяет нам записать обращение к элементу списка более компактно. Предыдущий оператор может выглядеть так:
alert(document.childNodes[0].nodeName);
Internet Explorer поддерживает еще одну форму обращения к элементу списка, а именно:
alert(document.childNodes(0).nodeName);
Однако, эта форма является нестандартной, и ей лучше не пользоваться.
4.3.3. Неупорядоченный список узлов: интерфейс NamedNodeMap
Поддержка: Для XML-документов соответствует стандарту (XMLDOMNamedNodeMap); для HTML-документов поддерживается в виде коллекций. Соответствует стандарту.
Интерфейс NamedNodeMap реализует неупорядоченные списки узлов, доступ к которым осуществляется по имени узла. Эти списки также являются живыми, т. е. любое изменение документа влечет автоматическое изменение всех связанных с ним списков.
DOM допускает возможность доступа к элементам списка NamedNodeMap по их номеру в списке, но подчеркивает, что эта возможность не означает упорядоченности списка по какому-либо признаку.
Этот интерфейс имеет единственное свойство length, возвращающее количество узлов в списке, и несколько методов, обеспечивающих доступ к элементам списка:
Свойство | Модель | Описание |
---|---|---|
getNamedItem | DOM 1 | Возвращает узел с заданным именем. |
getNamedItemNS | DOM 2 | Возвращает узел с заданным именем с учетом пространства имен. |
item | DOM 1 | Возвращает узел с заданным номером. |
removeNamedItem | DOM 1 | Удаляет узел с заданным именем. |
removeNamedItemNS | DOM 2 | Удаляет узел с заданным именем с учетом пространства имен. |
setNamedItem | DOM 1 | Добавляет узел в список. |
setNamedItemNS | DOM 2 | Добавляет узел в список с учетом пространства имен. |
Свойство length
Синтаксис: список.length Изменяемое: нет
Поддержка: Cоответствует стандарту. Соответствует стандарту.
Свойство length возвращает количество элементов в данном списке. Допустимые индексы элементов списка лежат в диапазоне от 0 до length-1 включительно. Следующий пример выводит на экран количество атрибутов элемента BODY:
alert(document.body.attributes.length);
Метод getNamedItem
Синтаксис: список.getNamedItem(name) Аргументы: name выражение типа DOMString Результат: узел Node или null Исключения: нет
Поддержка: Только для XML-документов. Соответствует стандарту.
Метод getNamedItem возвращает элемент списка узлов с заданным именем name в качестве результата. Если узла с таким именем в списке нет, то возвращается null. Пример:
alert(document.body.attributes.getNamedItem("text").nodeValue);
В Internet Explorer этот пример должен быть записан любым из двух следующих способов:
alert(document.body.attributes["text"].nodeValue); alert(document.body.attributes("text").nodeValue);
Метод getNamedItemNS
Синтаксис: список.getNamedItemNS(namespaceURI, localName) Аргументы: namespaceURI, localName выражения типа DOMString Результат: узел Node или null Исключения: нет
Поддержка: Нестандартная поддержка для XML-документов (см. прим.). Не поддерживается.
Метод getNamedItemNS возвращает элемент списка узлов с заданным именем в качестве результата. Если узла с таким именем в списке нет, то возвращается null. Этот метод предназначен для XML-документов и для HTML-документов может не поддерживаться. Аргумент namespaceURI задает URI пространства имен, а localName локальное имя узла.
Примечание. В Microsoft XML DOM этот метод имеет вид getQualifiedItem(localName, namespaceURI).
Метод item
Синтаксис: список.item(index) Аргументы: index числовое выражение Результат: узел Node или null Исключения: нет
Поддержка: Соответствует стандарту. Соответствует стандарту.
Метод item возвращает элемент списка узлов с заданным индексом в качестве результата. Если индекс выходит за пределы диапазона элементов списка, то возвращается null. Пример:
alert(document.body.attributes.item(0).nodeName);
JavaScript позволяет нам записать обращение к элементу списка более компактно. Предыдущий оператор может выглядеть так:
alert(document.attributes[0].nodeName);
Internet Explorer поддерживает еще одну форму обращения к элементу списка, а именно:
alert(document.attributes(0).nodeName);
Однако, эта форма является нестандартной, и ей лучше не пользоваться.
Метод removeNamedItem
Синтаксис: список.removeNamedItem(name) Аргументы: name выражение типа DOMString Результат: узел Node Исключения: NOT_FOUND_ERR, NO_MODIFICATION_ALLOWED_ERR
Поддержка: Только для XML-документов. Соответствует стандарту.
Метод removeNamedItem удаляет элемент списка узлов с заданным именем name и возвращает его в качестве результата. Если удаляемый узел является атрибутом элемента, имеющим значение по умолчанию, то сразу после его удаления он вновь появляется в списке со значением по умолчанию. Пример:
document.body.attributes.removeNamedItem("text");
Метод removeNamedItemNS
Синтаксис: список.removeNamedItemNS(namespaceURI, localName) Аргументы: namespaceURI, localName выражения типа DOMString Результат: узел Node Исключения: NOT_FOUND_ERR, NO_MODIFICATION_ALLOWED_ERR
Поддержка: Нестандартная поддержка для XML-документов (см. прим.). Не поддерживается.
Метод removeNamedItemNS удаляет элемент списка узлов с заданным именем и возвращает его в качестве результата. Если удаляемый узел является атрибутом элемента, имеющим значение по умолчанию, то сразу после его удаления он вновь появляется в списке со значением по умолчанию. Этот метод предназначен для XML-документов и для HTML-документов может не поддерживаться. Аргумент namespaceURI задает URI пространства имен, а localName локальное имя узла.
Примечание. В Microsoft XML DOM этот метод имеет вид removeQualifiedItem(localName, namespaceURI).
Метод setNamedItem
Синтаксис: список.setNamedItem(arg) Аргументы: arg выражение типа Node Результат: узел Node или null Исключения: WRONG_DOCUMENT_ERR, NO_MODIFICATION_ALLOWED_ERR, INUSE_ATTRIBURE_ERR
Поддержка: Только для XML-документов. Соответствует стандарту.
Метод setNamedItem добавляет элемент arg в данный список узлов. Если узел с таким именем в списке есть, то он заменяется на arg и возвращается в качестве результата. Если узла с таким именем в списке нет, то arg вставляется в список и возвращается null. Пример:
var attr = document.createAttribute("text"); attr.nodeValue = "red"; document.body.attributes.setNamedItem(attr);
Метод setNamedItemNS
Синтаксис: список.setNamedItemNS(arg) Аргументы: arg выражение типа Node Результат: узел Node или null Исключения: WRONG_DOCUMENT_ERR, NO_MODIFICATION_ALLOWED_ERR, INUSE_ATTRIBURE_ERR
Поддержка: Не поддерживается. Не поддерживается.
Метод setNamedItemNS добавляет элемент arg в данный список узлов. Если узел с таким именем в списке есть, то он заменяется на arg и возвращается в качестве результата. Если узла с таким именем в списке нет, то arg вставляется в список и возвращается null. Этот метод предназначен для XML-документов и для HTML-документов может не поддерживаться. Он отличается от метода setNamedItem тем, что при вставке узла используются URI его пространства имен, и его локальное имя.