Memahami Elemen XML Unmarshaling dalam Golang
Menyahmarshaling elemen XML ke dalam struct Go boleh menjadi mudah, tetapi aspek tertentu mungkin memerlukan penjelasan. Artikel ini menangani spesifik elemen XML unmarshaling dengan atribut dan nilai floating-point.
Struktur dan Unmarshaling
Untuk menyahmarshal XML, anda perlu mentakrifkan struct Go yang sepadan . Atribut dan nilai dalam elemen XML memetakan ke medan dalam struct. Sebagai contoh, kod berikut mentakrifkan struct ThingElem yang mewakili
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float // ??? }</code>
Walau bagaimanapun, memandangkan elemen XML mengandungi nilai titik terapung, medan Nilai kini tiada jenisnya.
Menggunakan Nilai untuk Unmarshal Floating-Point Nilai
Untuk menyahmarshal nilai titik terapung, anda boleh menggunakan anotasi Nilai. Ini memberitahu unmarshaler untuk memetakan teks dalam
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float64 // Use float64 for float value }</code>
XMLName and Unmarshaling
Medan XMLName digunakan untuk menentukan nama elemen XML yang dikaitkan dengan struct. Secara amnya, anda hanya perlu menggunakan XMLName apabila terdapat kekaburan dalam menentukan elemen mana yang harus dipetakan kepada struct. Dalam kes ini, tiada kesamaran, jadi menggunakan XMLName tidak perlu.
Membungkus Struktur
Jika anda mahu, anda boleh membungkus struct ThingElem dalam struct lain untuk mengendalikan elemen akar:
<code class="go">type ThingWrapper struct { T ThingElem `xml:"thing"` }</code>
Pembungkus ini menyediakan cara untuk mengumpulkan elemen struktur ThingElem untuk kemudahan.
Sampel XML
Kepada menggambarkan proses unmarshaling, berikut ialah contoh XML yang anda sediakan:
<code class="xml"><thing prop="1"> 1.23 </thing> <thing prop="2"> 4.56 </thing></code>
Dengan menggunakan struct ThingElem dan mengikut garis panduan di atas, anda sepatutnya berjaya menyahmarshal XML ini ke dalam struktur Go.
Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Elemen XML dengan Atribut dan Nilai Titik Terapung di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!