- - PR -
DOMツリーをXMLファイルへ書き出す時インデントをつけたい
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-01-21 11:43
XMLファイルを読み込み、内容を変更したDOMツリーを再び、、XMLファイルへと書き出したいのですが、タグの前にインデントが入らないので、とても読みにくいXMLになってしまいます。
使っているパーサーは、JAXPです。 何かうまい解決策はないかと考えましたが、JAVA自体も初心者なので、行き詰まってしまいました。 何か、いい方法があったら教えて下さい。すみません。 | ||||
|
投稿日時: 2002-01-21 12:20
山中です。
読みやすさだけの問題ですか? それなら、IEでXMLファイルを表示すれば、勝手にインデントして見せてくれるので、それでOKじゃないか?と常日頃思っているのですが、ご期待にはそえませんか? | ||||
|
投稿日時: 2002-01-21 12:47
ご返答ありがとうございます。
IEで表示する分には問題がないのですが、xmlファイルを直接開く状況もあるので、 できれば、ファイル自体に読みやすいインデントを入れたいと思っています。 かなり難しいんでしょうか・・・? 現在、一行ずつ書き出して、エレメントのレベルに応じた数のスペースを入れるという 形を考えていましたが、時間がかかりすぎてしまうのと、再度DOMツリーを形成した際に、テキストデータの場合、おかしなスペースが入ってしまうのでこの方法は避けたいのですが・・・ | ||||
|
投稿日時: 2002-01-21 14:25
com.sun.xml.tree.XmlDocumentを使えばインデント付きのファイルが作れます。
こんな感じ。 XmlDocument doc = new XmlDocument () ; doc.appendChild(...); doc.appendChild(...); ... doc.write(writer, encoding) ただし、sunのパッケージなのでお望みのものではないかも。 もっといい方法があったら私も知りたい。 | ||||
|
投稿日時: 2002-01-21 14:59
ありがとうございます。
早速試してみたいと思います。 (もっと便利な方法があれば、そっちも試したいです!mikiさん同じく) 勉強不足で申し訳ないのですが、sunのHPで探したのですが, packageがまだ見つけられていません。 もし、ご迷惑でなかったら、教えていただけますか? 申し訳ありません。 | ||||
|
投稿日時: 2002-01-21 17:02
ちょっと調べてみたら、com.sun.xml.tree.XmlDocumentからorg.apache.crimson.tree.XmlDocumentにパッケージ名が変更になったようです。
crimson.jarに入っているので見てください。 [ メッセージ編集済み 編集者: miki 編集日時 2002-01-22 10:34 ] | ||||
|
投稿日時: 2002-01-22 09:19
早速試してみたいと思います。
すばやいご返答、ありがとうございました!!! 本当に助かりました。 後は,うまくJAVAをコーディングできれば・・・です。 がんばります! | ||||
|
投稿日時: 2002-01-28 15:05
またもや行き詰まってしまいました・・・・
インデントをつけることは成功しましたが、こんどは、そのインデントがネックになってしまっています。 ファイルを書き出すごとに、各エレメントの間に、改行が追加されていって、4〜5回更新すると、ものすごく見づらいファイルになってしまいます。 コーディングは、このような感じです。 /*** XmlDocument doc = new XmlDocument(); doc = (XmlDocument)document; Element eUpdata = doc.getDocumentElement(); Writer writer = new BufferedWriter( new FileWriter(sFileName_) ); doc.write( writer, "Shift_JIS"); writer.close(); ***/ これは、避けようがないのでしょうか?? それとも、作りに問題があるのでしょうか?? ご意見やアドバイスを聞かせてください。お願いします。 |
1|2|3
次のページへ»