首頁  >  文章  >  後端開發  >  如何在 Go 中建立不帶關閉標籤的 XML 元素?

如何在 Go 中建立不帶關閉標籤的 XML 元素?

Linda Hamilton
Linda Hamilton原創
2024-11-17 03:02:03466瀏覽

How to Create XML Elements without Closing Tags in Go?

在Go 中建立不帶結束標記的XML 元素

在這種情況下,您有一個嵌套的Go 結構,它表示帶有巢狀元素的XML 信封.

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

您使用encoding/xml將此結構編組為XML,但您想要去掉soapenv:Header 和typ:Context 的結束標籤,使其具有空元素標籤,例如

這兩種形式之間沒有XML 等級的差異,因為都是空的元素標籤在功能上等同於沒有內容的元素的結束標籤。換句話說,在任何一種情況下,XML 的內容都是相同的:

<soapenv:Header></soapenv:Header>
<soapenv:Header/>

因此,無法使用標準 XML 來控制空元素標籤與結束標籤的使用技術。

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

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