encoding/xml パッケージで提供される関数を使用して XML をエンコードおよびデコードし、インデント形式と名前空間を設定します。
XML (eXtensible Markup Language) は、データ言語の記述、送信、保存に使用されるマークアップとして使用されます。幅広い用途に対応します。 Go 言語では、encoding/xml パッケージによって提供される関数を使用して、XML をエンコードおよびデコードできます。この記事では、XML エンコードとデコードに encoding/xml パッケージを使用する方法を紹介し、インデント形式と名前空間を設定する方法を示します。
XML データのエンコード
XML エンコードは、データを XML 形式に変換するプロセスです。 Go 言語では、構造オブジェクトを作成し、それを XML に変換することでこれを実現できます。具体的な手順は次のとおりです:
xml
構造体タグを使用して、タグ名とその他の属性を XML で指定する必要があります。 type Person struct { XMLName xml.Name `xml:"person"` Name string `xml:"name"` Age int `xml:"age"` }
上記の例では、Person
構造には Name
と Age
という 2 つのフィールドがあり、それぞれ XML に保存されます。タグ名として name
と age
を付けて表示します。
MarshalIndent
関数を使用すると、インデント形式を設定できます。このうち、最初のパラメータは XML データを書き込むための io.Writer
インターフェイス、2 番目のパラメータは XML のルート ノードです。 package main import ( "encoding/xml" "fmt" "os" ) type Person struct { XMLName xml.Name `xml:"person"` Name string `xml:"name"` Age int `xml:"age"` } func main() { person := Person{ Name: "Alice", Age: 30, } xmlData, err := xml.MarshalIndent(person, "", " ") if err != nil { fmt.Println("XML encoding error:", err) return } os.Stdout.Write([]byte(xml.Header)) os.Stdout.Write(xmlData) }
上記のコードを実行すると、次の XML データが出力されます。
<?xml version="1.0" encoding="UTF-8"?> <person> <name>Alice</name> <age>30</age> </person>
XML データのデコード
XML データのデコードとは、XML 形式の文字列を対応するデータに変換することです。構造。 Go 言語では、構造オブジェクトを作成し、Unmarshal
関数を呼び出すことでこれを実現できます。具体的な手順は次のとおりです:
xml
構造タグを使用して、タグ名とその他の属性を XML で指定する必要があります。 type Person struct { XMLName xml.Name `xml:"person"` Name string `xml:"name"` Age int `xml:"age"` }
Unmarshal
関数を使用すると、バイト スライスまたは io.Reader
インターフェイスから XML データを解釈できます。 package main import ( "encoding/xml" "fmt" "strings" ) type Person struct { XMLName xml.Name `xml:"person"` Name string `xml:"name"` Age int `xml:"age"` } func main() { xmlData := `` person := Person{} err := xml.Unmarshal([]byte(xmlData), &person) if err != nil { fmt.Println("XML decoding error:", err) return } fmt.Println(person.Name) fmt.Println(person.Age) } Alice 30
上記のコードを実行すると、次の結果が出力されます:
Alice 30
名前空間を設定します
名前空間 (名前空間) は、要素名と属性名の競合を避けるために XML で使用されます。機構。 Go 言語のエンコーディング/xml パッケージでは、構造体のフィールドで xml:"namespace-prefix:tagname"
を使用して名前空間を設定できます。
type Person struct { XMLName xml.Name `xml:"namespace-prefix:person"` Name string `xml:"name"` Age int `xml:"age"` }
上記の例では、person
要素の名前は namespace-prefix:person
になります。ここで、namespace-prefix
は名前空間のプレフィックス。
概要
encoding/xml パッケージが提供する関数を使用して、XML を簡単にエンコードおよびデコードできます。サンプル コードを通じて、encoding/xml パッケージを使用して XML をエンコードおよびデコードし、インデント形式と名前空間を設定する方法を学びました。 XML データのエンコードとデコードは、API リクエストの処理、設定ファイルの解析、その他のシナリオで重要な役割を果たし、Go 言語開発者に利便性をもたらします。
以上がエンコーディング/xml パッケージによって提供される関数を使用して、XML をエンコードおよびデコードし、インデント形式と名前空間を設定します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。