Wie erstellt man XML-Elemente ohne schließende Tags in Go?

Mary-Kate Olsen
Freigeben: 2024-11-19 17:35:02
Original
373 Leute haben es durchsucht

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

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"`
}
Nach dem Login kopieren

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>
Nach dem Login kopieren

Leere Element-Tags vs. Elemente ohne Inhalt

Die Unterscheidung zwischen einem leeren Element-Tag (z. B. , ) und ein Element ohne Inhalt und einem End-Tag (z. B. ) ist aus XML-Perspektive irrelevant.

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage