XML-Element ohne schließendes Tag in Go erstellen
In diesem Szenario haben Sie eine verschachtelte Go-Struktur, die einen XML-Umschlag mit verschachtelten Elementen darstellt .
// TierRequest is the outer most XML envelope of soap request 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"` Body TierBody `xml:"soapenv:Body"` } // TierBody is an emtpy container with the GetCollectorProfile struct type TierBody struct { GetCollectorProfiles GetCollectorProfile `Collectorxml:"typ:GetCollectorProfileRequest"` } // GetCollectorProfile struct has the context and collector number type GetCollectorProfile struct { Contexts CollectorContext `xml:"typ:Context"` Number int `xml:"typ:CollectorNumber"` } // CollectorContext contanins a few variables as attributes type CollectorContext struct { Channel string `xml:"Channel,attr"` Source string `xml:"Source,attr"` Language string `xml:"LanguageCode,attr"` }
Sie Marshallen diese Struktur mithilfe von „encoding/xml“ in XML, möchten aber die schließenden Tags für „soapenv:Header“ und „typ:Context“ entfernen, um leere Element-Tags wie „soapenv:Header“ zu haben />.
Es gibt keinen Unterschied auf XML-Ebene zwischen diesen beiden Formen, da ein leeres Element-Tag funktional einem End-Tag für ein Element ohne Inhalt entspricht. Mit anderen Worten, der Inhalt des XML ist in beiden Fällen derselbe:
<soapenv:Header></soapenv:Header>
<soapenv:Header/>
Daher ist es nicht möglich, die Verwendung leerer Element-Tags im Vergleich zu End-Tags mithilfe von Standard-XML zu steuern Techniken.
Das obige ist der detaillierte Inhalt vonWie erstelle ich XML-Elemente ohne schließende Tags in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!