2011-01-11 3 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); 
関連する問題