2011-01-11 4 views
2

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

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

Почему вы не можете просто повторно использовать оригинальный 'DocumentBuilder'? – skaffman

+0

Я создаю новый класс с новым узлом. – Grammin

+0

Я добавил редактирование, возможно, я был неясен – Grammin

ответ

2

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

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