Erstellen von XML-Elementen ohne schließende Tags
Betrachten Sie die folgende verschachtelte Go-Struktur:
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"` }
Bei Initialisierung und Marshalling Unter Verwendung von „encoding/xml“ wird die folgende Ausgabe erzeugt:
<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>
Leere Element-Tags vs. Elemente ohne Inhalt
Die Unterscheidung zwischen einem leeren Element-Tag (z. B. ,
Auswahl der Tag-Form
Um zu steuern, welche Tag-Form verwendet wird, behandeln Sie die Daten als Text und nicht als XML. Allerdings muss man sich über diese Unterscheidung im Allgemeinen keine Gedanken machen, da sie keine praktischen Auswirkungen hat.
Historische Anmerkung
Eine veraltete Empfehlung schlägt vor, leere Element-Tags zu verwenden ausschließlich für als EMPTY deklarierte Elemente. Diese Empfehlung dient jedoch in erster Linie der Interoperabilität mit SGML und ist für die meisten modernen XML-Anwendungen nicht relevant.
Das obige ist der detaillierte Inhalt vonWie erstellt man XML-Elemente ohne schließende Tags in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!