ホームページ  >  記事  >  バックエンド開発  >  Go で動的名を持つ XML 要素をマーシャリングするにはどうすればよいですか?

Go で動的名を持つ XML 要素をマーシャリングするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-22 18:13:13609ブラウズ

How Can I Marshal XML Elements with Dynamic Names in Go?

Golang で動的名を持つ XML 要素をマーシャリングする

Go 構造から XML ドキュメントを構築するタスクは、特に処理の際に課題を引き起こす可能性があります。さまざまな要素名があります。 XML マーシャリング プロセス中に動的要素名を許可する Go 構造体を定義できるか?

gt;XMLName と動的要素名

Go ドキュメント構造体の XMLName フィールドは文字列ではなく xml.Name 型でなければならないと述べています。この構造体には、「Space」と「Local」という 2 つのフィールドが含まれています。動的要素名を設定するには、xml.Name タイプ内の「Local」フィールドを変更します。

type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}

この例では、 XMLName.Local に格納されている値に基づいて、要素名が "person" または "Sender" である構造体を持ちます。 field.

import (
    "encoding/xml"
    "fmt"
)

type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}

func main() {
    person := Person{XMLName: xml.Name{Local: "Person"}, E1: "Value1"}
    sender := Person{XMLName: xml.Name{Local: "Sender"}, E1: "Value1"}

    // Marshal the struct into XML
    personXML, _ := xml.Marshal(person)
    senderXML, _ := xml.Marshal(sender)

    fmt.Println(string(personXML))
    fmt.Println(string(senderXML))
}

この例では、2 つの異なる XML ドキュメントが生成されます。1 つは要素名が「person」で、もう 1 つは要素名が「Sender」です。

Playground Example< ;/h3>

この例の対話型バージョンについては、Go Playground にアクセスしてください。 http://play.golang.org/p/bzSutFF9Bo

以上がGo で動的名を持つ XML 要素をマーシャリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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