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