Maison > Article > développement back-end > Comment créer des éléments XML sans fermer les balises dans 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,
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!