Go 構造から XML ドキュメントを構築するタスクは、特に処理の際に課題を引き起こす可能性があります。さまざまな要素名があります。 XML マーシャリング プロセス中に動的要素名を許可する Go 構造体を定義できるか?
Go ドキュメント構造体の XMLName フィールドは文字列ではなく xml.Name 型でなければならないと述べています。この構造体には、「Space」と「Local」という 2 つのフィールドが含まれています。動的要素名を設定するには、xml.Name タイプ内の「Local」フィールドを変更します。
type Person struct { XMLName xml.Name E1 string `xml:"ELEM1"` // ... }
この例では、 XMLName.Local に格納されている値に基づいて、要素名が "person" または "Sender" である構造体を持ちます。 field.
import ( "encoding/xml" "fmt" ) type Person struct { XMLName xml.Name E1 string `xml:"ELEM1"` // ... } func main() { person := Person{XMLName: xml.Name{Local: "Person"}, E1: "Value1"} sender := Person{XMLName: xml.Name{Local: "Sender"}, E1: "Value1"} // Marshal the struct into XML personXML, _ := xml.Marshal(person) senderXML, _ := xml.Marshal(sender) fmt.Println(string(personXML)) fmt.Println(string(senderXML)) }
この例では、2 つの異なる XML ドキュメントが生成されます。1 つは要素名が「person」で、もう 1 つは要素名が「Sender」です。
この例の対話型バージョンについては、Go Playground にアクセスしてください。 http://play.golang.org/p/bzSutFF9Bo
以上がGo で動的名を持つ XML 要素をマーシャリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。