import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
class Main
{
{
/* ちょっと前座長い */
/* 最初xml宣言の前に改行が入るコード書いちゃって焦った。直したけど。*/
String xmltext1
= br.
readLine(); while(true){
if(s.equals("")){
break;
}
xmltext1 = xmltext1 + "\n" + s;
}
String xmltext2
= br.
readLine(); while(true){
if(s == null){
break;
}
xmltext2 = xmltext2 + "\n" + s;
}
/* ここから本番 */
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
// このメソッド大事。adoptNodeメソッドとも比較してみよう!
Node node = xmldom1.importNode(xmldom2.getDocumentElement(),true);
xmldom1.getDocumentElement().appendChild(node);
// 後は出力して結果をみるコードをコピペ(笑)
// http://w...content-available-to-author-only...e.com/discussions/thread.tss?thread_id=26060
// 2011-12-13T22:34+09:00修正
//StringWriterは要らなかったので削除
DOMSource domSource = new DOMSource(xmldom1);
StreamResult result
= new StreamResult
(System.
out); TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
//standaloneはどっかの設定で消せるはず。
//終了タグ前の改行が<del>消せる</del>足せるかはわからん。
//2011-12-14T01:39+09:00追記
//どっかに書いてあったような気がするけど調べてないこと:
//1.二つの文書に重複するxml:idがあった場合はどうなるか?
//2.DOM自体は問題ないんだろうと思うけど、同じ名前空間接頭辞が別々の名前空間を指していた場合は?
}
}