Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mendapatkan Semua Elemen Tatasusunan Semasa XML Unmarshaling dalam Go?
XML Array Unmarshaling in Go: Capturing All Element
Dalam kod yang disediakan, isu timbul apabila menyahmarshaling rentetan XML yang mengandungi berbilang contoh jenis struct tertentu. Pelaksanaan semasa hanya mendapatkan semula elemen pertama tatasusunan.
Untuk mengatasi had ini, pertimbangkan pendekatan berikut:
Menggunakan Penyahkod XML
Menggunakan xml.Decoder membolehkan kami mengulangi data XML dan mendapatkan semula semua kejadian struct. Berikut ialah kod yang dikemas kini:
<code class="go">package main import ( "bytes" "encoding/xml" "fmt" "io" "log" ) type HostSystemIdentificationInfo struct { IdentiferValue string `xml:"identifierValue"` IdentiferType struct { Label string `xml:"label"` Summary string `xml:"summary"` Key string `xml:"key"` } `xml:"identifierType"` } func main() { d := xml.NewDecoder(bytes.NewBufferString(VV)) for { var t HostSystemIdentificationInfo err := d.Decode(&t) if err == io.EOF { break } if err != nil { log.Fatal(err) } fmt.Println(t) } } const VV = `<HostSystemIdentificationInfo xsi:type="HostSystemIdentificationInfo"> <identifierValue> unknown</identifierValue> <identifierType> <label>Asset Tag</label> <summary>Asset tag of the system</summary> <key>AssetTag</key> </identifierType> </HostSystemIdentificationInfo> <HostSystemIdentificationInfo xsi:type="HostSystemIdentificationInfo"> <identifierValue>Dell System</identifierValue> <identifierType> <label>OEM specific string</label> <summary>OEM specific string</summary> <key>OemSpecificString</key> </identifierType> </HostSystemIdentificationInfo> <HostSystemIdentificationInfo xsi:type="HostSystemIdentificationInfo"> <identifierValue>5[0000]</identifierValue> <identifierType> <label>OEM specific string</label> <summary>OEM specific string</summary> <key>OemSpecificString</key> </identifierType> </HostSystemIdentificationInfo> <HostSystemIdentificationInfo xsi:type="HostSystemIdentificationInfo"> <identifierValue>REDACTED</identifierValue> <identifierType> <label>Service tag</label> <summary>Service tag of the system</summary> <key>ServiceTag</key> </identifierType> </HostSystemIdentificationInfo>`</code>
Bermain dengan Go:
[Pautan Taman Permainan](http://play.golang.org/p/c7-E_Afe -3)
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Semua Elemen Tatasusunan Semasa XML Unmarshaling dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!