當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


GO MarshalIndent用法及代碼示例

GO語言"encoding/xml"包中"MarshalIndent"函數的用法及代碼示例。

用法:

func MarshalIndent(v any, prefix, indent string)([]byte, error)

MarshalIndent 的工作方式與 Marshal 類似,但每個 XML 元素都以新的縮進行開始,該行以前綴開頭,後跟根據嵌套深度的一個或多個縮進副本。

例子:

package main

import (
	"encoding/xml"
	"fmt"
	"os"
)

func main() {
	type Address struct {
		City, State string
	}
	type Person struct {
		XMLName   xml.Name `xml:"person"`
		Id        int      `xml:"id,attr"`
		FirstName string   `xml:"name>first"`
		LastName  string   `xml:"name>last"`
		Age       int      `xml:"age"`
		Height    float32  `xml:"height,omitempty"`
		Married   bool
		Address
		Comment string `xml:",comment"`
	}

	v := &Person{Id: 13, FirstName: "John", LastName: "Doe", Age: 42}
	v.Comment = " Need more details. "
	v.Address = Address{"Hanga Roa", "Easter Island"}

	output, err := xml.MarshalIndent(v, "  ", "    ")
	if err != nil {
		fmt.Printf("error: %v\n", err)
	}

	os.Stdout.Write(output)
}

輸出:

  <person id="13">
      <name>
          <first>John</first>
          <last>Doe</last>
      </name>
      <age>42</age>
      <Married>false</Married>
      <City>Hanga Roa</City>
      <State>Easter Island</State>
      <!-- Need more details. -->
  </person>

相關用法


注:本文由純淨天空篩選整理自golang.google.cn大神的英文原創作品 MarshalIndent。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。