我有两个节点 node1
和 nod2
有不同的父文档,现在我想调用
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
中的节点我该怎么做。我想说 node1
和 node2
保留我想要添加到另一个的节点,但是当我写
node1.appendChild(node2);
我的应用程序崩溃了,我想主要原因是他们有不同的所有者文档。
最佳答案
正如您所说,应用程序崩溃的原因是不同的所有者文档(有关更多详细信息,请参见 this)。要解决这个问题,您应该在 document1 中导入 node2,如下所示:
n2 = document1.importNode(n2, true);
然后:
n1.appendChild(n2);
有关导入的更多信息 here .
关于java - 无法将一个节点添加到另一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603358/