在Go 中動態定義XML 元素名稱
考慮一個XML 文件,其中兩個元素具有相同的結構(元素名稱除外) 。為了在 Go 中表示這些元素,需要一個具有動態元素名稱的結構體。
type Person struct { XMLName string `xml:"???` // How to make this dynamic? E1 string `xml:"ELEM1"` E2 string `xml:"ELEM2"` E3 string `xml:"ELEM3"` E4 string `xml:"ELEM4"` }
這裡引入了 xml.Name 型。它的Local 欄位允許動態設定元素名稱:
type Person struct { XMLName xml.Name E1 string `xml:"ELEM1"` // ... }
在運作時,可以指派元素名稱:
person := Person{ XMLName: xml.Name{Local: "Person"}, // ... }
請注意,結構體欄位(E1 - E4)必須匯出(以大寫字母開頭)才能包含在XML 輸出中。
有關實際範例,請參閱以下內容遊樂場:
http://play.golang.org/p/bzSutFF9Bo
以上是如何在 Go Structs 中動態設定 XML 元素名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!