亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 中將 XML 代碼寫入 XML 文件

在 Go 中將 XML 代碼寫入 XML 文件

Go
喵喵時光機 2021-06-29 13:04:11
我有一個打印 XML 代碼行的腳本,但我需要它來編寫一個新的 XML 文件,然后將 XML 代碼寫入文件而不是打印它。這是打印 XML 代碼的函數func processTopic(id string, properties map[string][]string) {    fmt.Printf("<card entity=\"%s\">\n", id)    fmt.Println("  <facts>")    for k, v := range properties {        for _,value := range v {            fmt.Printf("    <fact property=\"%s\">%s</fact>\n", k, value)        }    }    fmt.Println("  </facts>")    fmt.Println("</card>")}如何讓它編寫一個 XML 文件,然后將代碼寫入該 XML 文件?
查看完整描述

3 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

雖然打印您的 XML 可能沒問題,但為什么不使用該encoding/xml包?使用您的 XML 結構:


type Card struct {

    Entity string `xml:"entity,attr"`

    Facts  Facts

}


type Facts struct {

    Fact []Fact

}


type Fact struct {

    Property string `xml:"property,attr"`

    Value string `xml:",innerxml"`

}

像這樣創建您的數據結構(在 play 上運行示例):


card := &Card{

    Entity: "1234id",

    Facts: Facts{[]Fact{

        Fact{Property: "prop1", Value: "val1"},

        Fact{Property: "prop2", Value: "val2"},

    }},

}

現在您可以將結構編碼為 XML 并將其直接寫入io.Writer:


writer, err := os.Open("/tmp/tmp.xml")


encoder := xml.NewEncoder(writer)

err := encoder.Encode(data)


if err != nil { panic(err) }


查看完整回答
反對 回復 2021-07-05
  • 3 回答
  • 0 關注
  • 308 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號