Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich XML-Elemente ohne schließende Tags in Go?

Wie erstelle ich XML-Elemente ohne schließende Tags in Go?

Linda Hamilton
Linda HamiltonOriginal
2024-11-17 03:02:03466Durchsuche

How to Create XML Elements without Closing Tags in Go?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn