我嘗試使用“encoding/xml”包的 xml.Unmarshal 解組 XML 文件。XML 文件如下所示:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>frames</key> <dict> <key>0</key> <dict> <key>frame</key> <string>{{0, 0}, {81, 145}}</string> <key>offset</key> <string>{0, 0}</string> <key>rotated</key> <false/> <key>sourceColorRect</key> <string>{{0, 0}, {80, 145}}</string> <key>sourceSize</key> <string>{81, 145}</string> <key>aliases</key> <array> </array> </dict> <key>1</key>我定義了兩個結(jié)構(gòu):// types for createfont commandtype Characters struct { XMLName xml.Name `xml:"dict"` Char []string `xml:"key"`}type Result struct { Plist string `xml:"plist"` XMLName xml.Name `xml:"dict"` Keys []string `xml:"key"` Chars []Characters `xml:"dict"`}并用這個解組:v := Result{}err = xml.Unmarshal([]byte(data), &v)if err != nil { fmt.Printf("error: %v", err) return} else { fmt.Println("Result",v)}結(jié)果我得到:error: expected element type <dict> but have <plist>如果我刪除 XML 文件和結(jié)構(gòu)中的 plist 行,它就可以正常工作。我該怎么寫,才能讓它進(jìn)來?
1 回答

梵蒂岡之花
TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊
XMLName
結(jié)構(gòu)中字段的順序無關(guān)緊要。解組只發(fā)生在字段名稱和標(biāo)簽上,而不是順序。
通過XMLName
在類型中的任何位置聲明整個類型應(yīng)該屬于/在該 XML 元素內(nèi)。
- 1 回答
- 0 關(guān)注
- 394 瀏覽
添加回答
舉報
0/150
提交
取消