Rumah > pembangunan bahagian belakang > Golang > Bagaimana Mengendalikan Atribut XML Tidak Diketahui Semasa Unmarshalling dalam Go?

Bagaimana Mengendalikan Atribut XML Tidak Diketahui Semasa Unmarshalling dalam Go?

Linda Hamilton
Lepaskan: 2024-11-23 12:20:11
asal
917 orang telah melayarinya

How to Handle Unknown XML Attributes During Unmarshalling in Go?

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)
}
Salin selepas log masuk

Apabila dilaksanakan, kod ini akan keluarkan yang berikut:

[{ATTR1 VALUE1} {ATTR2 VALUE2}]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan