Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahmarshal Atribut XML dengan Atribut Tidak Diketahui dalam Go?
Menyahmarshal Atribut XML dengan Atribut Tidak Diketahui dalam Go
Dalam Go, pakej pengekodan/xml membolehkan kami mengawal dan menyahmarshal data XML ke dalam dan daripada struktur data Go. Walau bagaimanapun, secara lalai, ia hanya menyokong teg XML unmarshalling dengan atribut tetap yang diketahui sebelum ini.
Atribut Dinamik dalam XML
Dalam sesetengah kes, dokumen XML mungkin mempunyai teg dengan atribut dinamik yang tidak diketahui terlebih dahulu. Ini boleh menimbulkan cabaran apabila menyahmarshaling data XML sedemikian ke dalam struct Go.
Menyahmarshaling Atribut Dinamik
Sehingga akhir 2017, Go menyokong unmarshalling teg XML dengan atribut dinamik menggunakan xml:",any,attr" arahan teg. Arahan ini mengarahkan unmarshaler untuk mengumpulkan semua atribut ke dalam kepingan xml.Attr.
Contoh:
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) }
Apabila kod di atas dilaksanakan, ia akan print:
{ Attributes: [ {Name:ATTR1 Value:VALUE1} {Name:ATTR2 Value:VALUE2} ] }
Nota:
Arahan xml:",any,attr" tidak mengumpul atribut daripada teg bersarang. Jika anda perlu mengumpul atribut daripada teg bersarang, anda perlu membuat penyahkod XML tersuai.
Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal Atribut XML dengan Atribut Tidak Diketahui dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!