Maison  >  Article  >  développement back-end  >  Comment désorganiser l'intégralité du tableau XML dans une structure Go

Comment désorganiser l'intégralité du tableau XML dans une structure Go

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 06:11:30341parcourir

How to Unmarshal the Entire XML Array into a Go Struct

Désagrégation de tableaux XML dans Go : récupération de tous les éléments

Lors de la désorganisation d'un tableau XML dans une structure Go, il est possible de récupérer uniquement le premier élément. Pour éviter ce problème et obtenir l'intégralité du tableau, suivez ces étapes :

Décodage XML avec plusieurs itérations :

Plusieurs entités XML résident dans la chaîne XML. Pour désorganiser correctement ces entités, un xml.Decoder est requis. Utilisez d.Decode plusieurs fois pour récupérer chaque entité individuelle.

Exemple de code :

<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>

Échantillon XML :

<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>

En suivant ces étapes, vous pouvez réussir à désassembler l'intégralité du tableau XML dans une structure Go, en vous assurant de récupérer tous les éléments comme prévu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn