encoding/xml パッケージを使用して XML をエンコードおよびデコードし、インデント形式を設定する
Go 言語では、encoding/xml パッケージは XML をエンコードおよびデコードするための一連の関数を提供します。これらの関数は、Go 言語の構造データを XML 形式のデータに変換するのに役立ち、XML 形式のデータを Go 言語の構造データに変換することもできます。同時に、インデント形式を設定することで、生成された XML を読みやすくすることもできます。
XML をエンコードおよびデコードする前に、まず、変換するデータを表す構造を定義する必要があります。たとえば、次のように Person 構造を定義します。
type Person struct { Name string `xml:"name"` Age int `xml:"age"` Address string `xml:"address"` }
次に、xml.MarshalIndent 関数を使用して構造を XML 文字列にエンコードし、インデント形式を設定します。例は次のとおりです。
func main() { p := &Person{ Name: "Alice", Age: 25, Address: "123 Main St", } xmlData, err := xml.MarshalIndent(p, "", " ") if err != nil { fmt.Println("XML encoding error:", err) return } fmt.Println(string(xmlData)) }
上の例では、xml.MarshalIndent 関数を使用して Person 構造を XML 形式のデータにエンコードし、インデント形式を 4 つのスペースに設定します。最後に、fmt.Println 関数を使用して、生成された XML 文字列を出力します。
出力結果は次のとおりです。
<Person> <name>Alice</name> <age>25</age> <address>123 Main St</address> </Person>
インデント形式を設定すると、生成された XML データが読みやすく、理解しやすくなります。
エンコードに加えて、xml.Unmarshal 関数を使用して、XML 形式のデータを Go 言語の構造データにデコードすることもできます。例は次のとおりです。
func main() { xmlData := []byte(` <Person> <name>Alice</name> <age>25</age> <address>123 Main St</address> </Person> `) var p Person err := xml.Unmarshal(xmlData, &p) if err != nil { fmt.Println("XML decoding error:", err) return } fmt.Println("Name:", p.Name) fmt.Println("Age:", p.Age) fmt.Println("Address:", p.Address) }
上記の例では、まず XML 形式のデータを定義し、次に xml.Unmarshal 関数を使用して XML データを Person 構造データにデコードします。最後に、fmt.Println 関数を使用してデコードされたデータを印刷します。
出力結果は次のとおりです。
Name: Alice Age: 25 Address: 123 Main St
encoding/xml パッケージによって提供される関数を使用すると、XML を簡単にエンコードおよびデコードでき、生成される XML を作成するためのインデント形式を設定できます。 XMLをより美しく、より見やすくします。これらの関数は、XML データを処理するためのシンプルかつ強力な方法を提供します。
以上がエンコーディング/xml パッケージによって提供される関数を使用して、XML をエンコードおよびデコードし、インデント形式を設定します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。