我有一個小文件struct,我想使用該encoding/xml包進行編組和解組:type Point struct { X, Y int z int // unexported Names []string}當我使用encoding/json包時,編碼/解碼工作正常。但是當我使用這個encoding/xml包時,只有xml.Marshal()作品,xml.Unmarshal()返回一個錯誤:invalid character '<' looking for beginning of value這就是我對 XML 的處理方式:p := Point{1, 2, 3, []string{"Bob", "Alice"}}data, err := xml.Marshal(p)if err != nil { fmt.Println("Error:", err)}fmt.Println("XML:", string(data))var pXml Pointerr = json.Unmarshal(data, &pXml)if err != nil { fmt.Println("Error:", err)}fmt.Println("Unmarshalled XML:", pXml)為什么會出現(xiàn)此錯誤以及如何解組由 返回的 XML 輸出xml.Marshal()?這是Go Playground上完整的、可運行的應(yīng)用程序,供您試用。應(yīng)用程序的輸出:Input: {1 2 3 [Bob Alice]}JSON: {"X":1,"Y":2,"Names":["Bob","Alice"]}Unmarshalled JSON: {1 2 0 [Bob Alice]}XML: <Point><X>1</X><Y>2</Y><Names>Bob</Names><Names>Alice</Names></Point>Error: invalid character '<' looking for beginning of valueUnmarshalled XML: {0 0 0 []}
從 xml.Marshal() 的結(jié)果解組 XML
拉風(fēng)的咖菲貓
2021-09-10 21:49:19