Main Content

importNode

类: matlab.io.xml.dom.Document
命名空间: matlab.io.xml.dom

将来自另一个文档的节点导入此文档中

自 R2021a 起

语法

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 节点的副本。不会复制默认属性。但是,如果导入文档为正在导入的元素定义了默认属性,则会将这些属性分配给元素。如果 deep 参量为 true,则源元素的后代以递归方式导入,生成的节点经过重组以形成对应的子树。

matlab.io.xml.dom.Entity

复制 publicIdsystemIdnotationName 属性。

您无法将导入的 Entity 节点添加到文档的 DocumentType 节点,因为 DocumentType 是只读的。

matlab.io.xml.dom.EntityReference

即使您指定深拷贝,也只会复制 EntityReference 节点本身,因为在源文档和目标文档中可以不同方式定义实体。如果源文档提供引用实体的定义,则该值将分配给导入的实体引用。

matlab.io.xml.dom.Notation

复制 publicIdsystemId 属性。

您无法将导入的 Notation 节点添加到文档 DocumentType 节点,因为 DocumentType 节点是只读的。

deep 参量对 Notation 节点不起作用,因为它们没有子级。

matlab.io.xml.dom.ProcessingInstruction复制目标值和数据值。
matlab.io.xml.dom.Textmatlab.io.xml.dom.CDATASectionmatlab.io.xml.dom.Comment

复制数据和长度属性。

node = importNode(thisDoc,node) 导入指定节点的深拷贝。

输入参数

全部展开

要导入节点的文档,指定为 matlab.io.xml.dom.Document 对象。

是否为深拷贝,指定为 truefalse。如果值为 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 中推出