Java appendChild () исключая родителя узла - PullRequest
0 голосов
/ 26 марта 2020

Здравствуйте, у меня есть два узла srcNode и destNode. Я пытаюсь скопировать все дочерние узлы srcNode в destNode.

Мои значения входного узла

srcNode = <display-value> null </display-value>
destNode = <display-name>Water<child1>Italics</child1><child2>thing<child3>some</child3> hey </child2> for fun </display-name>

Вот то, что я пытался

private void copyDisplayName (Node srcNode, Node dstNode) {
 dstNode.appendChild(srcNode); // copies <display-name> too
}

Actual результат:

<display-value>
   <display-name>Water<child1>Italics</child1>
        <child2>thing<child3>some</child3> hey </child2> for fun </display-name>

Ожидаемый результат:

<display-value>Water<child1>Italics</child1>
            <child2>thing<child3>some</child3> hey </child2> for fun </display-value>

Я попытался получить узел клона и попытался переименовать узел клона to, но он заменял все экземпляры to в родительском документе.

    Node cloneNode = dstNode.cloneNode(true); 

            cloneNode.appendChild(srcNode);

            cloneNode = cloneNode.getFirstChild();
dstDocument.renameNode(cloneNode, null, "display-value");

            dstNode = cloneNode; *//<display-value>Water<child1>Italics</child1>
            <child2>thing<child3>some</child3> hey </child2> for fun </display-value> //(correct result but renaming all <display-value>)*

Я также попытался добавить помещение всего srdNode в Nodelist и добавить в destNode. По какой-то причине в этом примере он не проходит по oop через каждый элемент списка.

...