Bagaimana untuk Menghapuskan Elemen XML dengan Atribut dan Nilai Titik Terapung di Golang?

Patricia Arquette
Lepaskan: 2024-10-24 04:55:02
asal
563 orang telah melayarinya

How to Unmarshal XML Elements with Attributes and Floating-Point Values in Golang?

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 Elemen XML:

<code class="go">type ThingElem struct {
    Prop  int   `xml:"prop,attr"`
    Value float // ???
}</code>
Salin selepas log masuk

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 tag ke medan Nilai:

<code class="go">type ThingElem struct {
    Prop  int     `xml:"prop,attr"`
    Value float64 // Use float64 for float value
}</code>
Salin selepas log masuk

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

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

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!

sumber: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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!