在 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中文网其他相关文章!