在 Go 中,使用動態屬性解組 XML 可能是一個挑戰。然而,隨著最近問題 3633 的解決,現在有一個簡單有效的方法來處理這種情況。
傳統上,在 Go 中解組 XML 時,您會定義具有特定欄位的結構以符合預期的 XML 元素。但是,當您遇到帶有無法預測屬性的 XML 標籤時會發生什麼?
解決方案在於使用「,any,attr」 Go 結構定義中的「標記。此標記指示XML 解組器將指定元素的所有屬性收集到xml.Attr 結構的切片中。片段:
要將這個XML 解組到Go 結構中,您可以使用以下指令程式碼:<TAG ATTR1="VALUE1" ATTR2="VALUE2" />
package main import ( "encoding/xml" "fmt" ) func main() { var v struct { Attributes []xml.Attr `xml:",any,attr"` } data := `<TAG ATTR1="VALUE1" ATTR2="VALUE2" />` err := xml.Unmarshal([]byte(data), &v) if err != nil { panic(err) } fmt.Println(v) }
以上是如何在 Go 中使用動態屬性解組 XML?的詳細內容。更多資訊請關注PHP中文網其他相關文章!