1

我有两个节点node1nod2它们有不同的父文档,现在我想调用

node1.appendChild(node2);

此节点的功能,但我的应用程序崩溃,您可以在下面看到节点的所有者文档和 XML。

Document document1 = node1.getOwnerDocument();
Document document2 = node2.getOwnerDocument();

两个节点都有不同的所有者文档。node1所有者文件如下所述

<?xml version="1.0" encoding="UTF-8"?>
<ClientGetOTPSeedMessage>
    <UserID>userID</UserID>
    <DeviceInfo/>
</ClientGetOTPSeedMessage>

node2所有者文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<Desc>
    <Desc1>First name</Desc1>
    <Desc2>Second name</Desc2>
</Desc>

现在我想从节点中获取</Desc>节点document2并将其放入<DeviceInfo/>节点中,document1我该怎么做。我想说的是node1node2保留我想要添加的节点,但是当我写的时候

node1.appendChild(node2); 

我的应用程序崩溃了,我想主要原因是他们有不同的所有者文件。

4

1 回答 1

3

正如您所说,应用程序崩溃的原因是不同的所有者文档(有关更多详细信息,请参阅this)。要解决这个问题,您应该在 document1 中导入 node2,如下所示:

n2 = document1.importNode(n2, true);

接着:

 n1.appendChild(n2);

更多关于进口的信息在这里

于 2012-05-15T15:24:28.493 回答