无法将一个节点添加到另一个节点

时间:2012-05-15 14:52:12

标签: java android xml nodes

我有两个节点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); 

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

1 个答案:

答案 0 :(得分:3)

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

n2 = document1.importNode(n2, true);

然后:

 n1.appendChild(n2);

有关import here的更多信息。