Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghapuskan Elemen XML dengan Atribut dan Nilai Titik Terapung di Golang?

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

Patricia Arquette
Patricia Arquetteasal
2024-10-24 04:55:02567semak imbas

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>

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>

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!

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