いまさら聞けないXML〜VB.netでXMLを書き出す
- 2011.08.27 Saturday
- 21:02
古い記事なので、 XmlDataDocument というクラスを使っていますが、 XmlDocument クラスに読み替えていただければ警告がなくなります。 |
投稿としては、XMLを読み出すやシリアライズの前に書いておいた方が良かったかもしれない。
今回は、シリアライズしてXMLに書き込むのではなく、
たとえて言うなら、設定ファイル(iniファイル)でよく使われる
WritePrivateProfileStringのような感じで書き込んでいく方法を覚え書きしてみる
もっと効率のよい書き方があるかもしれません。
覚え書きなので、許してちょ
■XMLファイルを新規作成する
土台となるXMLファイルを作る方法
|
※System.Xml、System.Textなどのインポートが必要
◆出力例
|
ルート名(親要素)をxRootとした場合
保存したファイルは読み込みでも書いた
|
で読み込める
■ルート(親要素)に新しい要素(子要素)を作る
|
◆出力結果
|
※子要素名をxDataとした場合
■新しい要素の中に属性を入れる
「新しい要素(子要素)を作る」に
|
を加える
|
◆出力結果
|
※属性名をdID、属性値を 都道府県 とした場合
■要素の中に値を入れる
「新しい要素(子要素)を作る」に
|
を加える
|
◆出力結果
|
※値に 都道府県 を代入した場合
■新しい要素の中に孫要素を入れる
要素は値と同じなので、
xValue(XmlTextクラス)をnewChild(XmlElementクラス)に変えることで、
孫要素を追加できる。
|
◆出力結果
|
◆ソース例
上の書き込み方法を使って、
いまさら聞けないXML〜VB.netでXMLを読むのデータ例を作ってみる。
|
■出力例
このソースだけでは
|
だけが保存される。
データ例のように、大阪要素、福岡要素を追加する場合は、
東京要素と同様の処理を繰り返せばよい
この読み書きをうまく組み合わせてプログラミングすれば、
iniファイルのようなXML設定ファイルを作ることができる。
要素や値が入っていないときなど、nothingが返ってきたりする処理を
エラーなくプログラミングするかが結構難しいが、なれれば簡単。
追記
.Net4xになって、
上のサンプルを書くと
BC40000 'XmlDataDocument' は廃止されています: 'XmlDataDocument class will be removed in a future release.'
という警告が出る。
XmlDataDocument を XmlDocument に変えれば警告はなくなると思う。
■参考
HIRO's.NET
http://hiros-dot.net/VBNET2005/XMLMenu.htm
関連投稿
いまさら聞けないXML〜VB.netでXMLを読む
いまさら聞けないXML〜VB.netでXMLをシリアライズして保存してみる
いまさら聞けないXML〜VB.netでXMLをデシリアライズしてXMLを読む
いまさら聞けないXML〜VB.netでXMLをシリアライズしてテキスト(文字列)にしてみる
いまさら聞けないXML〜AppendChildの書き込み速度が遅くなる?
今さら聞けないXML〜Shadowsとシリアライズ編
いまさら聞けないXML〜パラメーターをもたないNewを作る
いまさら聞けないXML〜名前空間マネージャ
いまさらJSONしてみる〜VB2008でJSON形式を使う
いまさらJSONしてみる〜クラスや構造体をJSONしてみる
いまさらJSONしてみる〜配列を作ってみる。
いまさらJSONしてみる〜難読化とクラスのデシリアライズ
オブジェクト型をどうにかキャストしてみる〜objectな配列を取り出す
いまさらJSONしてみる〜System.Text.JSONを使う
ありがとうございます
実は 全くの素人でただひたすらコピーして動く事を確認しているような 状態です
今「いまさら聞けないXML〜VB.netでXMLを書き出す」を
コピーしているのですが「xFile」の宣言がなく 動きません
どの様に設定したらよろしいのでしょうか
お忙しいとは思いますがよろしくお願いいたします
参考にしていただき、ありがとうございます。
さて、だいぶ端折っておりますので、宣言のないところもある(暗黙で)かと思いますが、
まずは、最初から読んでいただきながら(特に先頭の「XMLファイルを新規作成する」部分)、
対象のメソッドをMSDNで検索していただければ(下記リンク)、何が入るか分かるかなと思います。
ヒントは
xFile="ファイル名"
です。
MSDNリファレンス
saveメソッド
http://msdn.microsoft.com/ja-jp/library/dw229a22%28v=vs.90%29.aspx
loadメソッド
http://msdn.microsoft.com/ja-jp/library/b15d53d6%28v=vs.90%29.aspx
DOBON.NETも参考になるかと思います。
http://dobon.net/vb/dotnet/programing/editappconfigfile.html
答えっぽい投稿
http://blog.syo-ko.com/?eid=1222
素人を卒業するために、
もうちょっと考えてみて、答えを見つけてみてくださいm(_ _)m