Go言語でXMLファイルを読み込んで要素を追加してまたXMLファイルに保存する
2017/03/11
Go言語でXMLデータを扱う方法です。
これがベストの方法かはわかりませんがとりあえずできたのでシェア。データの読み込みにio/ioutilライブラリを使って、書き込みにosライブラリを使うところに若干引っ掛かるものがあります。(どっちかに統一したかった)
※アイキャッチ画像に自作Gopher君を載せていますが、Gopherの原著作者はRenée French氏です。
[ad#top-1]
ソースコードはこちらです。
雑感として、可変配列やジェネリクスがないGo言語でリスト化データを扱うのって結構大変だなってことです。単純に要素の追加ができないですから。
XMLからパースしてリスト化したデータoriginに直接データ追加ができないので、originより容量が1つだけ大きいcompを用意して、そこに新データを追加するという苦肉の策を取りました。
originを宣言する際に、データ数より1個大きく取れば解決できますが、宣言時はどれだけの量のデータかはわかっていないので、それができません。23行目のxml.Unmarshal(data, &origin)で、要素数、容量ともにガチッと決められてしまいます。
Java、C#に慣れた僕にとってGo言語はやはり違和感あります。
[ad#ad-1]
スポンサーリンク