Maison  >  Article  >  développement back-end  >  Comment créer des éléments XML sans fermer les balises dans Go ?

Comment créer des éléments XML sans fermer les balises dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 17:35:02371parcourir

How do you create XML elements without closing tags in Go?

Création d'éléments XML sans balises de fermeture

Considérez la structure Go imbriquée suivante :

type TierRequest struct {
    XMLName   xml.Name `xml:"soapenv:Envelope"`
    NsEnv     string   `xml:"xmlns:soapenv,attr"`
    NsType    string   `xml:"xmlns:typ,attr"`
    Header    string   `xml:"soapenv:Header"`

    // TierBody is an empty container with the GetCollectorProfile struct
    Body TierBody `Collectorxml:"typ:GetCollectorProfileRequest"`
}

type TierBody struct {
    GetCollectorProfiles GetCollectorProfile `Collectorxml:"typ:GetCollectorProfileRequest"`
}

type GetCollectorProfile struct {
    Contexts CollectorContext `xml:"typ:Context"`
    Number   int              `xml:"typ:CollectorNumber"`
}

type CollectorContext struct {
    Channel  string `xml:"Channel,attr"`
    Source   string `xml:"Source,attr"`
    Language string `xml:"LanguageCode,attr"`
}

Une fois initialisée et marshalée en utilisant encoding/xml, il produit ce qui suit sortie :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:typ="http:/www.yahoo.com/tp/ets/2008/04/01/collector/types">
  <soapenv:Header></soapenv:Header>
  <soapenv:Body>
    <GetCollectorProfiles>
      <typ:Context Channel="WEB" Source="WEB" LanguageCode="en-CA"></typ:Context>
      <typ:CollectorNumber>50000</typ:CollectorNumber>
    </GetCollectorProfiles>
  </soapenv:Body>
</soapenv:Envelope>

Balises d'élément vides et éléments sans contenu

La distinction entre une balise d'élément vide (par exemple, ) et un élément sans contenu et sans balise de fin (par exemple, ) n'est pas pertinent d'un point de vue XML.

Choisir la forme de balise

Pour contrôler quelle forme de balise est utilisée , traitez les données comme du texte plutôt que comme du XML. Cependant, il n'est généralement pas nécessaire de s'inquiéter de cette distinction, car elle n'a aucune implication pratique.

Note historique

Une recommandation désuète suggère d'utiliser des balises d'éléments vides. uniquement pour les éléments déclarés VIDE. Cependant, cette recommandation concerne principalement l'interopérabilité avec SGML et n'est pas pertinente pour la plupart des applications XML modernes.

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