Копирование узла XML из документа в другой документ с использованием Java DOM Parser

1

Я реализую простой алгоритм, который анализирует XML файл и применяет его узлы на основе значения атрибута в узле. Я извлекаю все узлы и вставляю весь узел в отсортированный ArrayList. Затем я создал новый XML-документ и создал новые и теги, но когда я пытаюсь скопировать отсортированный узел и добавить его в исключение, которое все еще используется в другом документе. я использую

Node sortedCnode= cNode.cloneNode(false); //tried true as well
b.appendChild(sortedCnode);

Я думаю, что мой код пытается добавить все true. Но я не знаю, как это сделать

XML выглядит ниже

<A>
  <B>
    <C>
      <D>
      </D>
      <E>
      </E>
    </C>
  </B>
</A>
  • 0
    Можете ли вы дать образец XML со значением атрибута, на основе которого вы предпочитаете сортировать?
Теги:
dom
xml-parsing

2 ответа

1
Лучший ответ

я понял

для копирования узла из исходной DOM в целевой DOM ниже следует использовать

targetBNode.appendChild(targetDOC.adoptNode(sourceCnode.cloneNode(true)));
  • 1
    Я думаю, что лучший подход здесь - это использовать преобразование xslt, а не читать и заново создавать xml.
0

Более полный ответ доступен здесь от Jherico: Как скопировать DOM-узлы из одного документа в другой в Java.

Подводя итог, вам необходимо:

  1. Скопируйте узел
  2. Импортировать копию в документ назначения
  3. Поместите копию в новый документ

Jherico предоставляет два метода: один использует cloneNode() и acceptNode(), который совпадает с принятым ответом. Однако существует метод ярлыков с использованием importNode() в документе, который выполняет обе эти операции для вас.

targetBNode.appendChild(targetDOC.importNode(sourceCnode, true));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню