exponenta event banner

importNode

Класс: matlab.io.xml.dom.Document
Пакет: matlab.io.xml.dom

Импорт узла из другого документа в этот документ

Синтаксис

node = importNode(thisDoc,node,deep)
node = importNode(thisDoc,node)

Описание

node = importNode(thisDoc,node,deep) импортирует узел из другого документа в этот документ. Этот метод создает копию узла, назначает владельцу копии этот документ и возвращает копию. Импортированный узел не имеет родителя. Используйте appendChild метод этого документа для вставки импортированного узла в дерево документов.

Импортированные узлы имеют то же имя узла, тип узла, URI пространства имен, префикс и локальное имя, что и исходный узел. В этой таблице описывается дополнительная информация, которая копируется в зависимости от типа узла.

Тип узлаДополнительная импортированная информация
matlab.io.xml.dom.Attr

В копии, ownerElement атрибут имеет пустое значение, а указанный флаг имеет значение true. Потомки источника Attr узлы рекурсивно импортируются, а результирующие узлы повторно собираются для формирования соответствующего поддерева. deep аргумент не влияет на Attr узлы, поскольку потомки всегда копируются.

matlab.io.xml.dom.DocumentFragment

Для глубокой копии потомки исходного элемента рекурсивно импортируются, а результирующие узлы повторно собираются для формирования соответствующего поддерева. В противном случае копия будет пустой DocumentFragment.

matlab.io.xml.dom.Document, matlab.io.xml.dom.DocumentTypeИмпортировать узлы этих типов нельзя.
matlab.io.xml.dom.Element

Будут импортированы указанные узлы атрибутов исходного элемента и полученные в результате Attr узлы присоединены к копии Elementузел. Атрибуты по умолчанию не копируются. Однако если импортируемый документ определяет атрибуты по умолчанию для импортируемого элемента, эти атрибуты назначаются элементу. Если глубокий аргумент trueпотомки исходного элемента рекурсивно импортируются, и результирующие узлы повторно собираются для формирования соответствующего поддерева.

matlab.io.xml.dom.Entity

publicId, systemId, и notationName атрибуты копируются.

Невозможно добавить импортированные Entity узлы к DocumentType узла документа, поскольку DocumentType доступен только для чтения.

matlab.io.xml.dom.EntityReference

Только EntityReference сам узел копируется, даже если указана глубокая копия, поскольку сущность может быть по-разному определена в исходном и целевом документах. Если исходный документ содержит определение для объекта, на который имеется ссылка, значение присваивается импортированной ссылке на объект.

matlab.io.xml.dom.Notation

publicId и systemId атрибуты копируются.

Невозможно добавить импортированные Notation узлы документа DocumentType узел, потому что DocumentType узел доступен только для чтения.

deep аргумент не влияет на Notation узлы, поскольку у них нет дочерних узлов.

matlab.io.xml.dom.ProcessingInstructionКопируются целевые значения и значения данных.
matlab.io.xml.dom.Text, matlab.io.xml.dom.CDATASection, и matlab.io.xml.dom.Comment

Копируются атрибуты данных и длины.

node = importNode(thisDoc,node) импортирует глубокую копию указанного узла.

Входные аргументы

развернуть все

Документ для импорта узла, указанный как matlab.io.xml.dom.Document объект.

Узел для импорта, указанный как объект одного из следующих классов:

Является ли копия глубокой, указывается как true или false. Если значение равно true, импортированная копия узла является глубокой копией. В противном случае, она является неглубокой копией.

Примеры

развернуть все

Создание узла для weekdays элемент в одном документе и импорт узла во второй документ.

Создание документа с weekdays элемент.

import matlab.io.xml.dom.*
doc1 = Document("root_element");
doc1RootNode = getDocumentElement(doc1);
weekdays = ["Mon" "Tue" "Wed" "Thu" "Fri"];
weekdaysElement = createElement(doc1,"weekdays");
for i=1:5
    dayElement = createElement(doc1,"day");
    appendChild(dayElement,createTextNode(doc1,weekdays(i)));
    appendChild(weekdaysElement,dayElement);
end
appendChild(doc1RootNode,weekdaysElement);

Создайте второй документ.

doc2 = Document("root_element2");
doc2RootNode = getDocumentElement(doc2);

Импорт weekdays элемент во второй документ и добавление импортированного узла к корневому узлу.

importedNode = importNode(doc2,weekdaysElement);
appendChild(doc2RootNode,importedNode);

Запишите документ в файл.

xmlFileName = "weekdays.xml";
writer = matlab.io.xml.dom.DOMWriter;
writeToFile(writer,doc2,xmlFileName);

Представлен в R2021a