我想检查提交的xml文件是否是有效的xml,所以我检查它是否可以解析。我是这样的:
const EmptyXml = `<?xml xmlns="http://www.w3.org/1999/xhtml"?>`
func CanParse(xmlData string) (bool, error) {
if strings.TrimSpace(xmlData) == "" {
return false, nil
}
type Tag struct {
XMLName xml.Name
Content string `xml:",innerxml"`
}
type Object struct {
Items []Tag `xml:",any"`
}
var o *Object
err := xml.Unmarshal([]byte(xmlData), &o)
if err != nil {
return false, err
} else {
return true, nil
}
}
可悲的是,我遇到一个错误:意外的EOF。 为什么会这样?
实际上,该方法在一个月前就已经生效,并且golang从那时起就没有更新过,所以我仍然要弄清楚该方法的破败之处
答案 0 :(得分:1)
这意味着它需要一个结束标签。我最近没有做太多XML,但是我认为您要么必须添加结尾</xml>
,要么添加问号:<?xml xmlns="http://www.w3.org/1999/xhtml"?>