首页 > 后端开发 > Golang > 如何在 Go 中创建没有结束标签的 XML 元素?

如何在 Go 中创建没有结束标签的 XML 元素?

Mary-Kate Olsen
发布: 2024-11-19 17:35:02
原创
403 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板