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 узел рекурсивно импортируется, и результирующие узлы снова собираются для формирования соответствующего поддерева. The 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 узел доступен только для чтения.

The 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
Для просмотра документации необходимо авторизоваться на сайте