我想检查提交的 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 就没有更新过所以我还在想是什么破坏了这个方法
最佳答案
这意味着它需要一个结束标记。我最近没有做太多 XML,但是我认为您要么必须添加结束符 </xml>
或添加问号:<?xml xmlns="http://www.w3.org/1999/xhtml"?>
关于xml - go 1.11.2 xml 意外的 EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53834441/