XML をマップに直接アンマーシャリングする
XML をマップに直接アンマーシャリングすると、中間の構造体変換を排除してデータ処理を最適化できます。 step.
実装:
これを実現するには、xml.Unmarshaller インターフェイスを実装する型を作成し、XML データを XML データに直接マッピングできるようにします。 map[string]string.
type classAccessesMap struct { m map[string]string } // UnmarshalXML implements the xml.Unmarshaller interface func (c *classAccessesMap) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { c.m = make(map[string]string) var key, val string for { t, _ := d.Token() switch tt := t.(type) { // TODO: parse the inner structure case xml.StartElement: fmt.Println(">", tt) case xml.EndElement: fmt.Println("<", tt) if tt.Name == start.Name { return nil } if tt.Name.Local == "enabled" { c.m[key] = val } } } }
使用法:
カスタム タイプをアンマーシャル操作に適用して、XML データをマップに直接マッピングします:
// Unmarshalling into a map var cm classAccessesMap err := xml.Unmarshal([]byte(`<classAccesses>\n <apexClass>AccountRelationUtility</apexClass>\n <enabled>true</enabled>\n</classAccesses>`), &cm) if err != nil { fmt.Println(err) }
このアプローチは、二重変換のオーバーヘッドを回避することでデータ処理を合理化し、その結果、大規模なデータのパフォーマンスが向上します。セットします。
以上が最適化されたデータ処理のために XML を Go マップに直接アンマーシャリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。