首頁  >  文章  >  後端開發  >  如何在 Go 中建立沒有結束標籤的 XML 元素?

如何在 Go 中建立沒有結束標籤的 XML 元素?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-19 17:35:02369瀏覽

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

建立不帶關閉標籤的XML 元素

考慮以下嵌套Go 結構:

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"`
}

初始化和🎜>初始化和封送時使用encoding/xml,它會產生以下內容輸出:

<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>

空元素標籤與沒有內容的元素

空元素標籤(例如,

)之間的差異)和一個沒有內容和結束標籤的元素(例如,
) 從XML 角度來看是無關緊要的。

選擇標記形式

控制使用哪一種標記形式,將資料視為文字而非 XML。然而,通常不必擔心這種區別,因為它沒有實際意義。

歷史註解

過時的建議建議使用空元素標籤僅適用於聲明為 EMPTY 的元素。然而,此建議主要是為了與 SGML 的互通性,與大多數現代 XML 應用程式無關。

以上是如何在 Go 中建立沒有結束標籤的 XML 元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn