创建不带关闭标签的 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。然而,通常不必担心这种区别,因为它没有实际意义。
历史注释
过时的建议建议使用空元素标签仅适用于声明为 EMPTY 的元素。然而,此建议主要是为了与 SGML 的互操作性,与大多数现代 XML 应用程序无关。
以上是如何在 Go 中创建没有结束标签的 XML 元素?的详细内容。更多信息请关注PHP中文网其他相关文章!