Как создать новый построитель документов из существующего узла строителей?
У меня есть следующий код:
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);