質問: はじめまして。 DOMを使ってXML文書をツリー構造にして、ツリーの一部を抽出して別のXML文書を生成したいのですがどうすればできますか? XMLパーサはXerces2.7を使用しています。 例えば、下記のXML文書でbook要素とその子孫要素全てを抽出して、別のXML文書として保存といった具合です。 Nine Stories 1953 J.D.Salinger よろしくお願いします。
回答: Xercesはわからないですがデフォルトのorg.w3c.domだと importNodeでbook以下の要素を全部インポートできます。 そのあとでmioさんのおっしゃるようにrootにappendChildします。 こんな感じ // 新しいドキュメント作成 Document newDoc = builder.newDocument(); // root作成 Element newRoot = newDoc.createElement("books"); newDoc.appendChild(newRoot); // 元のドキュメントからを取得 // NodeListで取らないとが複数の場合困る NodeList book = doc.getElementsByTagName("book"); // 新しいドキュメントのrootに以下をインポートしてrootに追加 for(int i = 0;i