- PR -

XMLを使ったときのエラー

1
投稿者投稿内容
ダメ猫
常連さん
会議室デビュー日: 2004/02/20
投稿数: 45
投稿日時: 2004-07-18 22:29
こんにちは。
現在JAVAでXMLを使うことに挑戦していますが、エラーが出てしまい困っています。
どなたかご教授下さい。

ソースコードは次のようになっています。

// DOMの準備をする
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();

// XML文書の読み込み
Document doc = db.parse(new FileInputStream("C:\aaa.xml"));

// XML文書の出発点を得る
Element root = doc.getDocumentElement();

if(!id.equals("0")){
  parent = id;
}

if (category.equals("0")){
  setMaxctg();
}

eleVec.addElement(new Integer(1));

// XML文書を書き出す
XmlDocument xdoc = (XmlDocument)doc;  ←ここでClassCastExeptionが出ます。

BufferedWriter bw = new BufferedWriter(new FileWriter(path));
xdoc.write(bw,"Shift_JIS");
bw.close();

単体で動かしたときにはエラーは出ませんが、TOMCATを使ってサーブレットから呼んだときにえらーが出てしまいます。
どなたかご教授下さい。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-07-18 23:18
XMLDocumentというのは、どのパッケージのクラスでしょうか?
おそらくパーサ依存のクラスだと思いますので、使っているパーサが異なるのでしょう。

パーサに依存しないコードを書くのであれば、javax.xml.transform.Transformerクラスを
使用して出力したほうがいいと思います。
ダメ猫
常連さん
会議室デビュー日: 2004/02/20
投稿数: 45
投稿日時: 2004-07-18 23:55
返信ありがとうございます。

できればDocumentBuilderクラスのparse()メソッドで帰ってくる
Documentを使って編集したいと思っています。
これで編集したものをファイルに出力するにはどうしたらいいのでしょうか?

ローカルで単体なら動くのですがサーブレットだと前のソースでは動きません。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-07-19 01:48
引用:

ダメ猫さんの書き込み (2004-07-18 23:55) より:
できればDocumentBuilderクラスのparse()メソッドで帰ってくる
Documentを使って編集したいと思っています。


その部分は問題ありません。

引用:

これで編集したものをファイルに出力するにはどうしたらいいのでしょうか?
ローカルで単体なら動くのですがサーブレットだと前のソースでは動きません。


前の書き込みの意味がわからなかった、ということでしょうか。Transformerクラスを使った
出力処理のサンプルを書きますので、参考にしてください。

コード:
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
Source source = new DOMSource(doc);
Result result = new StreamResult(new File(path));
transformer.transform(source, result);


ダメ猫
常連さん
会議室デビュー日: 2004/02/20
投稿数: 45
投稿日時: 2004-07-19 01:55
返信ありがとうございます。

TransformerFactoryを使って編集もするのかと勘違いしていました。
このコードを参考に試してみます。
ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)