Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Nama Elemen XML Dinamik Marshal dalam Go?

Bagaimanakah Saya Boleh Nama Elemen XML Dinamik Marshal dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-26 17:23:09342semak imbas

How Can I Marshal Dynamic XML Element Names in Go?

Marshaling Nama Elemen XML Dinamik di Golang

Masalah

Fail XML mengandungi berbilang elemen dengan struktur yang serupa, tetapi nama yang berbeza (mis., PERSON dan PENGHANTAR). Matlamatnya ialah untuk mentakrifkan struct yang membenarkan nama elemen dinamik.

Penyelesaian

Walaupun pada mulanya cuba untuk menetapkan nama elemen menggunakan sifat XMLName tidak berjaya, adalah mungkin untuk mencapai ini dengan memanfaatkan strategi berikut:

  • Gunakan jenis xml.Name untuk XMLName: Mengikut dokumentasi, medan XMLName memerlukan jenis xml.Name.
type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}
  • Tetapkan nama elemen secara dinamik melalui xml.Name.Local: Untuk menetapkan nama elemen dinamik, gunakan medan Setempat of xml.Name.
person := Person { 
    XMLName: xml.Name { Local: "Person" },
    // ...
}
  • Medan yang dieksport untuk kemasukan XML: Pastikan medan yang mewakili elemen (cth., E1 dalam contoh ini) dieksport dengan bermula dengan huruf besar. Ini membolehkan mereka dimasukkan ke dalam output XML.

Contoh

Rujuk contoh taman permainan berikut untuk pelaksanaan lengkap: http://play.golang.org/p/ bzSutFF9Bo.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Nama Elemen XML Dinamik Marshal dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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