タグを閉じずに 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 ではなくテキストとして扱います。ただし、この区別には実際的な影響はないため、通常は心配する必要はありません。
歴史的メモ
古い推奨事項では、空の要素タグを使用することが推奨されています。 EMPTY として宣言された要素のみに適用されます。ただし、この推奨事項は主に SGML との相互運用性を目的としたものであり、最新の XML アプリケーションのほとんどには関係ありません。
以上がGo で終了タグを使用せずに XML 要素を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。