ホームページ > バックエンド開発 > Golang > Go で終了タグを使用せずに XML 要素を作成するにはどうすればよいですか?

Go で終了タグを使用せずに XML 要素を作成するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-19 17:35:02
オリジナル
402 人が閲覧しました

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"`
}
ログイン後にコピー

初期化およびマーシャリング時エンコード/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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート