ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

JAVAのフォーマット変換:DOM編(その4:DOMを生成してXML保存)

2006-10-02 17:33:58 | JavaとWeb

 前回のJAVAのフォーマット変換:DOM編では、操作をおこないました。
 で、いままでは、ファイルを読み込んで、それを保存していたので、今回は、ファイルを読み込まず、DOMを生成してその内容を保存します。




■概要
ドキュメントビルダーをつくるまでは、今までとおりです。

DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbfactory.newDocumentBuilder();

で、今までは、パースしていたのですが、今回は、ドキュメントを作成しますので
Document xtree = builder.newDocument();

となります。

あとは、前回の編集で、appendChildしたやりかたとおなじなのですが、
一番トップのノードを、ドキュメントにappendChildします。

xtree.appendChild(ne1);



■ソース

● 仕様
<Hotel>
  <HotelName>ホテル追加その1</HotelName>
</Hotel>
というかたちで、<Hotel>をルートにして、
hotel3.xmlというファイル名で書き出します。

●ソース
 以下のとおり
import java.io.*;
import java.net.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

//	出力のために追加
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

public class test {
	/*
	 * 	メイン処理(呼び出し元)
	 */
	public static void main(String[] args) 
	{
		try
		{

			//==============================//
			//	読み込む		    //
			//==============================//
		         // ドキュメントビルダーファクトリを生成
			DocumentBuilderFactory dbfactory = 
                            DocumentBuilderFactory.newInstance();
		         // ドキュメントビルダーを生成
			DocumentBuilder builder = 
                                dbfactory.newDocumentBuilder();
     		         // パースを実行してDocumentオブジェクトを取得
      		         Document xtree = builder.newDocument();

		         //	エレメント(Hotel)追加
		         Element ne1 = xtree.createElement("Hotel");
			Element ne2 = xtree.createElement("HotelName");
			Text nt1 = xtree.createTextNode("ホテル追加その1");
			ne2.appendChild(nt1);
			ne1.appendChild(ne2);
			xtree.appendChild(ne1);
			
			//==============================//
			//	変換のための元生成	     //
			//==============================//
			DOMSource source= new DOMSource(xtree); 

			//==============================//
			//  変換先(ファイル)生成      //
			//==============================//
			File f =new File("hotel3.xml"); 
			FileOutputStream fo = new FileOutputStream(f); 
			StreamResult result = new StreamResult(fo); 

			//==============================//
			//	変換		     //
			//==============================//
			TransformerFactory transFactory = 
                               TransformerFactory.newInstance(); 
			Transformer transformer =
                               transFactory.newTransformer(); 
			transformer.transform(source, result); 

			//==============================//
			//	あとしまつ	     //
			//==============================//
			fo.close(); 
			System.out.println("Job End");
		}
		catch (Exception e)
		{
      			e.printStackTrace();
    		}

	}
}


(上記 < > ¥ は本当は半角です)
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« BREWで複数画面を(分割して... | トップ | Firefoxの名称を\"Iceweasel\... »
最新の画像もっと見る

JavaとWeb」カテゴリの最新記事