Как создать новый построитель документов из существующего узла строителей?

У меня есть следующий код:

DocumentBuilderFactory dbFactory_ = DocumentBuilderFactory.newInstance();
Document doc_;
DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder();
StringReader reader = new StringReader(s);
InputSource inputSource = new InputSource(reader);
doc_ = dBuilder.parse(inputSource);
doc_.getDocumentElement().normalize();

а потом я пересекаю doc_ для того, чтобы получить конкретный узел. Затем я хотел бы создать новый dBuilder с этим узлом. То, что я пытался до сих пор с небольшим успехом, - это преобразовать мой узел в строку, а затем получить dBuilder.parse строка, но это не работает, потому что я сталкиваюсь с проблемами пространства имен и другими вещами.

<Random>
  <Fixed></Fixed>
</Random>

Так что с этим я бы взял <Fixed> узел и создать совершенно новый класс, где он является корневым узлом.

1 ответ

Решение

Создайте новый документ и затем импортируйте в него свой узел, как показано ниже:

Document otherDoc = dBuilder.newDocument();
Node importedNode = otherDoc.importNode(myNode, true);
otherDoc.appendChild(importedNode);
Другие вопросы по тегам