首页  >  文章  >  后端开发  >  如何在 Go 中创建不带关闭标签的 XML 元素?

如何在 Go 中创建不带关闭标签的 XML 元素?

Linda Hamilton
Linda Hamilton原创
2024-11-17 03:02:03462浏览

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></p>
<pre class="brush:php;toolbar:false"><soapenv:Header/>

因此,无法使用标准 XML 来控制空元素标签与结束标签的使用技术。

以上是如何在 Go 中创建不带关闭标签的 XML 元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn