Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menetapkan Nama Elemen XML Secara Dinamik Semasa Marshaling dalam Go?

Bagaimanakah Saya Boleh Menetapkan Nama Elemen XML Secara Dinamik Semasa Marshaling dalam Go?

Linda Hamilton
Lepaskan: 2024-12-02 08:41:13
asal
401 orang telah melayarinya

How Can I Dynamically Set XML Element Names During Marshaling in Go?

Nama Elemen Dinamik dalam XML Marshaling

Dokumen XML selalunya mengandungi elemen dengan struktur yang serupa tetapi nama yang berbeza. Untuk mengendalikan perkara ini dalam Go, anda mungkin tertanya-tanya sama ada anda boleh mengubah suai nama elemen secara dinamik semasa penggabungan XML.

Definisi Struktur

Mari kita pertimbangkan dokumen XML berikut dengan dua elemen, "PERSON" dan "SENDER," mengandungi elemen yang sama dengan elemen yang berbeza names:

<PERSON>
  <ELEM1>...</ELEM1>
  <ELEM2>...</ELEM2>
  <ELEM3>...</ELEM3>
  <ELEM4>...</ELEM4>
</PERSON>

<SENDER>
  <ELEM1>...</ELEM1>
  <ELEM2>...</ELEM2>
  <ELEM3>...</ELEM3>
  <ELEM4>...</ELEM4>
</SENDER>
Salin selepas log masuk

Pada mulanya, anda mungkin cuba mentakrifkan struct seperti ini, di mana nama elemen ditetapkan secara statik:

type Person struct {
    XMLName string `xml:"PERSON"` // Static element name
    E1 string `xml:"ELEM1"`
    E2 string `xml:"ELEM2"`
    E3 string `xml:"ELEM3"`
    E4 string `xml:"ELEM4"`
}
Salin selepas log masuk

Nama Elemen Dinamik

Untuk menjadikan nama elemen dinamik, anda perlu menggunakan jenis xml.Name dan bukannya a rentetan:

type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    E2 string `xml:"ELEM2"`
    E3 string `xml:"ELEM3"`
    E4 string `xml:"ELEM4"`
}
Salin selepas log masuk

Kini, anda boleh menetapkan nama elemen secara dinamik menggunakan medan Setempat xml.Nama:

person := Person{
    XMLName: xml.Name{Local: "Person"},
    // ... Set other fields
}
Salin selepas log masuk

Ini membolehkan anda menjana nama elemen XML secara dinamik berdasarkan data khusus yang anda kumpulkan.

Contoh

Sebuah kerja contoh boleh didapati di Go Playground: http://play.golang.org/p/bzSutFF9Bo.

Dengan teknik ini, anda boleh mencipta struct yang mengendalikan elemen XML dengan nama yang berbeza-beza, memberikan fleksibiliti dan kebolehlanjutan dalam kod pengendalian XML anda.

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

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