Goで未定義のXMLを処理するのに四苦八苦した話。 任意のXML処理を作る。 構造体を個別に定義せずにXMLを処理したい! 汎用定義だけで以下のような処理がしたいでござる〜。 読み込んだ情報をすべて保持する。 保持した情報をすべてXMLにする。 というわけで、xmlパッケージソースにらめっこしながら 汎用定義「Tag」を作ってみた。 package main import ( "encoding/xml" "io" ) type Tag struct { Name xml.Name Attr []xml.Attr Children []interface{} } func (t *Tag) MarshalXML(e *xml.Encoder, start xml.StartElement) error { start.Name = t.Name start.Attr = t.Attr e.