Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menghapuskan Elemen XML dengan Atribut dan Nilai Titik Terapung dalam Go?
Menghapuskan Elemen XML dengan Atribut dan Nilai Titik Terapung dalam Go
Untuk menyahmarshal elemen XML seperti yang disediakan, dengan atribut dan nilai titik terapung, kita perlu mentakrifkan struct Go yang sepadan dengan struktur XML.
Mentakrifkan Struct
Mari kita pertimbangkan dua definisi struct yang diberikan dalam soalan:
Takrifan Pertama:
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float // ??? } type ThingWrapper struct { T ThingElem `xml:"thing"` }</code>
Takrifan Kedua:
<code class="go">type ThingElem struct { XMLName xml.Name `xml:"thing"` // Do I even need this? Prop int `xml:"prop,attr"` Value float // ??? }</code>
Mengatasi Pilihan :
Penyelesaian Akhir:
<code class="go">type Thing struct { Prop int `xml:"prop,attr"` Value float64 `xml:",chardata"` } type Root struct { Things []Thing `xml:"thing"` }</code>
Dalam penyelesaian ini, struct Thing mewakili elemen XML tunggal dan struct Root ialah bekas yang menyimpan sekeping struct Thing untuk menyahmarshaling elemen akar XML.
Kod Contoh:
<code class="go">package main import ( "encoding/xml" "fmt" ) const xmlData = ` <root> <thing prop="1">1.23</thing> <thing prop="2">4.56</thing> </root> ` func main() { root := &Root{} if err := xml.Unmarshal([]byte(xmlData), root); err != nil { fmt.Println(err) return } fmt.Println(root.Things) }</code>
Kod ini menunjukkan cara untuk menyahmarshal elemen XML ke dalam struktur Go, termasuk mengalih keluar ruang daripada nilai titik terapung.
Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Elemen XML dengan Atribut dan Nilai Titik Terapung dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!