Beim Unmarshaling eines XML-Arrays in eine Go-Struktur ist es möglich, nur das erste Element abzurufen. Um dieses Problem zu vermeiden und das gesamte Array zu erhalten, führen Sie die folgenden Schritte aus:
XML-Dekodierung mit mehreren Iterationen:
In der XML-Zeichenfolge befinden sich mehrere XML-Entitäten. Um diese Entitäten korrekt zu entmarshalieren, ist ein xml.Decoder erforderlich. Verwenden Sie d.Decode mehrmals, um jede einzelne Entität abzurufen.
Beispielcode:
<code class="go">d := xml.NewDecoder(bytes.NewBufferString(VV)) for { var t HostSystemIdentificationInfo err := d.Decode(&t) if err == io.EOF { // End of file encountered break } if err != nil { // Handle any decoding errors log.Fatal(err) } fmt.Println(t) // Each element will be printed }</code>
XML-Beispiel:
<code class="xml"><HostSystemIdentificationInfo> <identifierValue>unknown</identifierValue> <identifierType> <label>Asset Tag</label> <summary>Asset tag of the system</summary> <key>AssetTag</key> </identifierType> </HostSystemIdentificationInfo> <HostSystemIdentificationInfo> <identifierValue>Dell System</identifierValue> <identifierType> <label>OEM specific string</label> <summary>OEM specific string</summary> <key>OemSpecificString</key> </identifierType> </HostSystemIdentificationInfo></code>
Indem Sie diese Schritte befolgen, können Sie das gesamte XML-Array erfolgreich in eine Go-Struktur entpacken und so sicherstellen, dass Sie alle Elemente wie vorgesehen abrufen.
Das obige ist der detaillierte Inhalt vonSo entmarshalieren Sie das gesamte XML-Array in eine Go-Struktur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!