Как создать новый построитель документов из существующего узла строителей? - PullRequest
2 голосов
/ 12 января 2011

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

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 Ответ

2 голосов
/ 13 января 2011

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

Document otherDoc = dBuilder.newDocument();
Node importedNode = otherDoc.importNode(myNode, true);
otherDoc.appendChild(importedNode);
...