試圖實作一個簡單的 XML 決議,下面的代碼沒有按預期作業。
它只是回傳一個{[]}空的Results,而它應該填充它。
為什么 ?...
package main
import "fmt"
import "encoding/xml"
import "bytes"
type Name struct {
Name string `xml:"NAME"`
}
type Results struct {
Names []Name `xml:"RESULTS"`
}
func main() {
data := []byte(`
<?xml version="1.0" encoding="UTF-8"?>
<RESULTS>
<NAME>Apple</NAME>
<NAME>Banana</NAME>
</RESULTS>
`)
var r Results
decoder := xml.NewDecoder(bytes.NewBuffer(data))
unError := decoder.Decode(&r)
if unError != nil {
fmt.Println("XML Unmarshaling error:", unError )
}else{
fmt.Printf("%v", r)
}
}
在 Playground 和本地 (go1.17.2) 中嘗試過。
uj5u.com熱心網友回復:
我建議您使用像xmltogo這樣的在線結構生成器,因此將其用作:
type RESULTS struct {
XMLName xml.Name `xml:"RESULTS"`
Text string `xml:",chardata"`
NAME []string `xml:"NAME"`
}
在操場上試一試
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/343559.html
上一篇:在TCPconn上多次寫入
