ホームページ  >  記事  >  バックエンド開発  >  Go でタグを閉じずに XML 要素を作成するにはどうすればよいですか?

Go でタグを閉じずに XML 要素を作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-17 03:02:03462ブラウズ

How to Create XML Elements without Closing Tags in Go?

Go で終了タグを使用せずに XML 要素を作成する

このシナリオでは、ネストされた要素を含む XML エンベロープを表すネストされた Go 構造体があります。 .

// 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 の終了タグを削除して、.

空の要素タグは、コンテンツのない要素の終了タグと機能的に同等であるため、これら 2 つの形式の間に XML レベルの違いはありません。言い換えれば、XML の内容はどちらの場合も同じです:

<soapenv:Header></soapenv:Header>
<soapenv:Header/>

したがって、標準 XML を使用して空の要素タグと終了タグの使用を制御することはできません。テクニック。

以上がGo でタグを閉じずに XML 要素を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。