Menyahmarshalling Atribut XML dengan Kuantiti Tidak Diketahui Menggunakan Golang
Di Golang, unmarshalling XML melibatkan menghuraikan data XML ke dalam struct, membolehkan manipulasi data yang mudah dan mendapatkan semula. Walau bagaimanapun, senario tertentu memerlukan pengendalian atribut XML yang tidak dijangka, di mana nama dan nilai atribut mungkin berbeza-beza mengikut keadaan.
Pakej pengekodan/xml menyediakan sokongan untuk menghapuskan elemen XML dengan atribut dinamik melalui xml:",mana-mana anotasi ,attr". Ciri ini membolehkan pengumpulan semua atribut ke dalam kepingan xml.Attr dalam struct.
Untuk menggambarkan keupayaan ini, pertimbangkan kod berikut:
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.Attributes) }
Apabila dilaksanakan, kod ini akan keluarkan yang berikut:
[{ATTR1 VALUE1} {ATTR2 VALUE2}]
Setiap entri dalam kepingan Atribut mewakili atribut, yang terdiri daripada namanya (cth., "ATTR1") dan nilai (cth., "VALUE1").
Peningkatan ini memberi kuasa kepada pembangun untuk bekerja dengan dokumen XML yang mengandungi atribut yang tidak diketahui atau dinamik, menjadikan Go sebagai alat yang lebih serba boleh untuk pemprosesan XML.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Atribut XML Tidak Diketahui Semasa Unmarshalling dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!